Skip to content

Commit 85d142d

Browse files
authored
Merge pull request #3864 from aws/release-v1.106.0
Release 1.106.0 (to main)
2 parents 46d9d0c + 7b3c3f1 commit 85d142d

16 files changed

+482
-26
lines changed

samtranslator/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "1.105.0"
1+
__version__ = "1.106.0"

samtranslator/model/capacity_provider/generators.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -133,13 +133,13 @@ def _transform_instance_requirements(self) -> Dict[str, Any]:
133133
"""
134134
instance_requirements = {}
135135

136-
if "Architectures" in self.instance_requirements:
136+
if self.instance_requirements.get("Architectures") is not None:
137137
instance_requirements["Architectures"] = self.instance_requirements["Architectures"]
138138

139-
if "AllowedTypes" in self.instance_requirements:
139+
if self.instance_requirements.get("AllowedTypes") is not None:
140140
instance_requirements["AllowedInstanceTypes"] = self.instance_requirements["AllowedTypes"]
141141

142-
if "ExcludedTypes" in self.instance_requirements:
142+
if self.instance_requirements.get("ExcludedTypes") is not None:
143143
instance_requirements["ExcludedInstanceTypes"] = self.instance_requirements["ExcludedTypes"]
144144

145145
return instance_requirements
@@ -150,11 +150,11 @@ def _transform_scaling_config(self) -> Dict[str, Any]:
150150
"""
151151
scaling_config = {}
152152

153-
if "MaxVCpuCount" in self.scaling_config:
153+
if self.scaling_config.get("MaxVCpuCount") is not None:
154154
scaling_config["MaxVCpuCount"] = self.scaling_config["MaxVCpuCount"]
155155

156156
# Handle AverageCPUUtilization structure
157-
if "AverageCPUUtilization" in self.scaling_config:
157+
if self.scaling_config.get("AverageCPUUtilization") is not None:
158158
scaling_config["ScalingMode"] = "Manual"
159159
scaling_policies = []
160160

samtranslator/model/sam_resources.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -789,7 +789,11 @@ def _construct_role(
789789
else IAMRolePolicies.lambda_assume_role_policy()
790790
)
791791

792-
managed_policy_arns = [ArnGenerator.generate_aws_managed_policy_arn("service-role/AWSLambdaBasicExecutionRole")]
792+
managed_policy_arns = (
793+
[ArnGenerator.generate_aws_managed_policy_arn("service-role/AWSLambdaBasicDurableExecutionRolePolicy")]
794+
if self.DurableConfig
795+
else [ArnGenerator.generate_aws_managed_policy_arn("service-role/AWSLambdaBasicExecutionRole")]
796+
)
793797

794798
tracing = intrinsics_resolver.resolve_parameter_refs(self.Tracing)
795799

@@ -1504,7 +1508,7 @@ def to_cloudformation(self, **kwargs: Any) -> List[Resource]:
15041508
instance_requirements=(
15051509
model.InstanceRequirements.dict(exclude_none=True) if model.InstanceRequirements else None
15061510
),
1507-
scaling_config=model.ScalingConfig.dict() if model.ScalingConfig else None,
1511+
scaling_config=model.ScalingConfig.dict(exclude_none=True) if model.ScalingConfig else None,
15081512
kms_key_arn=passthrough_value(model.KMSKeyArn),
15091513
depends_on=self.depends_on,
15101514
resource_attributes=self.resource_attributes,

tests/translator/input/capacity_provider_full.yaml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,35 @@ Resources:
2626
MaxVCpuCount: 10
2727
AverageCPUUtilization: 75.0
2828
KMSKeyArn: arn:aws:kms:us-east-1:123456789012:key/abcd1234-ef56-gh78-ij90-klmnopqrstuv
29+
30+
CapacityProviderTwo:
31+
Type: AWS::Serverless::CapacityProvider
32+
Properties:
33+
CapacityProviderName: customized-capacity-provider
34+
VpcConfig:
35+
SecurityGroupIds:
36+
- sg-12345678
37+
- sg-87654321
38+
SubnetIds:
39+
- subnet-12345678
40+
ScalingConfig:
41+
AverageCPUUtilization: 75.0
42+
KMSKeyArn: arn:aws:kms:us-east-1:123456789012:key/abcd1234-ef56-gh78-ij90-klmnopqrstuv
43+
44+
PartialCapacityProviderThree:
45+
Type: AWS::Serverless::CapacityProvider
46+
Properties:
47+
VpcConfig:
48+
SecurityGroupIds:
49+
- sg-12345678
50+
SubnetIds:
51+
- subnet-12345678
52+
Tags:
53+
Team: Tooling
54+
PropagateTags: false
55+
InstanceRequirements:
56+
AllowedTypes:
57+
- c5.xlarge
58+
ScalingConfig:
59+
MaxVCpuCount: 10
60+
KMSKeyArn: arn:aws:kms:us-east-1:123456789012:key/abcd1234-ef56-gh78-ij90-klmnopqrstuv

tests/translator/output/aws-cn/capacity_provider_full.json

Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,75 @@
22
"AWSTemplateFormatVersion": "2010-09-09",
33
"Description": "Full CapacityProvider configuration test",
44
"Resources": {
5+
"CapacityProviderTwo": {
6+
"Properties": {
7+
"CapacityProviderName": "customized-capacity-provider",
8+
"CapacityProviderScalingConfig": {
9+
"ScalingMode": "Manual",
10+
"ScalingPolicies": [
11+
{
12+
"PredefinedMetricType": "LambdaCapacityProviderAverageCPUUtilization",
13+
"TargetValue": 75.0
14+
}
15+
]
16+
},
17+
"KMSKeyArn": "arn:aws:kms:us-east-1:123456789012:key/abcd1234-ef56-gh78-ij90-klmnopqrstuv",
18+
"PermissionsConfig": {
19+
"CapacityProviderOperatorRoleArn": {
20+
"Fn::GetAtt": [
21+
"CapacityProviderTwoOperatorRole",
22+
"Arn"
23+
]
24+
}
25+
},
26+
"Tags": [
27+
{
28+
"Key": "lambda:createdBy",
29+
"Value": "SAM"
30+
}
31+
],
32+
"VpcConfig": {
33+
"SecurityGroupIds": [
34+
"sg-12345678",
35+
"sg-87654321"
36+
],
37+
"SubnetIds": [
38+
"subnet-12345678"
39+
]
40+
}
41+
},
42+
"Type": "AWS::Lambda::CapacityProvider"
43+
},
44+
"CapacityProviderTwoOperatorRole": {
45+
"Properties": {
46+
"AssumeRolePolicyDocument": {
47+
"Statement": [
48+
{
49+
"Action": [
50+
"sts:AssumeRole"
51+
],
52+
"Effect": "Allow",
53+
"Principal": {
54+
"Service": [
55+
"lambda.amazonaws.com"
56+
]
57+
}
58+
}
59+
],
60+
"Version": "2012-10-17"
61+
},
62+
"ManagedPolicyArns": [
63+
"arn:aws-cn:iam::aws:policy/AWSLambdaManagedEC2ResourceOperator"
64+
],
65+
"Tags": [
66+
{
67+
"Key": "lambda:createdBy",
68+
"Value": "SAM"
69+
}
70+
]
71+
},
72+
"Type": "AWS::IAM::Role"
73+
},
574
"FullCapacityProvider": {
675
"Properties": {
776
"CapacityProviderName": "customized-capacity-provider",
@@ -88,6 +157,77 @@
88157
]
89158
},
90159
"Type": "AWS::IAM::Role"
160+
},
161+
"PartialCapacityProviderThree": {
162+
"Properties": {
163+
"CapacityProviderScalingConfig": {
164+
"MaxVCpuCount": 10,
165+
"ScalingMode": "Auto"
166+
},
167+
"InstanceRequirements": {
168+
"AllowedInstanceTypes": [
169+
"c5.xlarge"
170+
]
171+
},
172+
"KMSKeyArn": "arn:aws:kms:us-east-1:123456789012:key/abcd1234-ef56-gh78-ij90-klmnopqrstuv",
173+
"PermissionsConfig": {
174+
"CapacityProviderOperatorRoleArn": {
175+
"Fn::GetAtt": [
176+
"PartialCapacityProviderThreeOperatorRole",
177+
"Arn"
178+
]
179+
}
180+
},
181+
"Tags": [
182+
{
183+
"Key": "Team",
184+
"Value": "Tooling"
185+
},
186+
{
187+
"Key": "lambda:createdBy",
188+
"Value": "SAM"
189+
}
190+
],
191+
"VpcConfig": {
192+
"SecurityGroupIds": [
193+
"sg-12345678"
194+
],
195+
"SubnetIds": [
196+
"subnet-12345678"
197+
]
198+
}
199+
},
200+
"Type": "AWS::Lambda::CapacityProvider"
201+
},
202+
"PartialCapacityProviderThreeOperatorRole": {
203+
"Properties": {
204+
"AssumeRolePolicyDocument": {
205+
"Statement": [
206+
{
207+
"Action": [
208+
"sts:AssumeRole"
209+
],
210+
"Effect": "Allow",
211+
"Principal": {
212+
"Service": [
213+
"lambda.amazonaws.com"
214+
]
215+
}
216+
}
217+
],
218+
"Version": "2012-10-17"
219+
},
220+
"ManagedPolicyArns": [
221+
"arn:aws-cn:iam::aws:policy/AWSLambdaManagedEC2ResourceOperator"
222+
],
223+
"Tags": [
224+
{
225+
"Key": "lambda:createdBy",
226+
"Value": "SAM"
227+
}
228+
]
229+
},
230+
"Type": "AWS::IAM::Role"
91231
}
92232
}
93233
}

tests/translator/output/aws-cn/function_with_durable_config.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
"Version": "2012-10-17"
4747
},
4848
"ManagedPolicyArns": [
49-
"arn:aws-cn:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
49+
"arn:aws-cn:iam::aws:policy/service-role/AWSLambdaBasicDurableExecutionRolePolicy"
5050
],
5151
"Tags": [
5252
{

tests/translator/output/aws-cn/function_with_durable_config_globals.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
"Version": "2012-10-17"
4747
},
4848
"ManagedPolicyArns": [
49-
"arn:aws-cn:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
49+
"arn:aws-cn:iam::aws:policy/service-role/AWSLambdaBasicDurableExecutionRolePolicy"
5050
],
5151
"Tags": [
5252
{
@@ -103,7 +103,7 @@
103103
"Version": "2012-10-17"
104104
},
105105
"ManagedPolicyArns": [
106-
"arn:aws-cn:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
106+
"arn:aws-cn:iam::aws:policy/service-role/AWSLambdaBasicDurableExecutionRolePolicy"
107107
],
108108
"Tags": [
109109
{
@@ -160,7 +160,7 @@
160160
"Version": "2012-10-17"
161161
},
162162
"ManagedPolicyArns": [
163-
"arn:aws-cn:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
163+
"arn:aws-cn:iam::aws:policy/service-role/AWSLambdaBasicDurableExecutionRolePolicy"
164164
],
165165
"Tags": [
166166
{

tests/translator/output/aws-cn/globals_for_function.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@
116116
"Version": "2012-10-17"
117117
},
118118
"ManagedPolicyArns": [
119-
"arn:aws-cn:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole",
119+
"arn:aws-cn:iam::aws:policy/service-role/AWSLambdaBasicDurableExecutionRolePolicy",
120120
"arn:aws-cn:iam::aws:policy/AWSXRayDaemonWriteAccess",
121121
"arn:aws-cn:iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"
122122
],
@@ -254,7 +254,7 @@
254254
"Version": "2012-10-17"
255255
},
256256
"ManagedPolicyArns": [
257-
"arn:aws-cn:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole",
257+
"arn:aws-cn:iam::aws:policy/service-role/AWSLambdaBasicDurableExecutionRolePolicy",
258258
"arn:aws-cn:iam::aws:policy/AWSXRayDaemonWriteAccess",
259259
"arn:aws-cn:iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"
260260
],

0 commit comments

Comments
 (0)