Skip to content

Commit 46d9d0c

Browse files
authored
Merge pull request #3852 from aws/release-v1.105.0
Release 1.105.0 (to main)
2 parents 414132d + bea855c commit 46d9d0c

21 files changed

+840
-1
lines changed

.cfnlintrc.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ ignore_templates:
149149
- tests/translator/output/**/function_with_tenancy_and_api_event.json # cfnlint is not updated to recognize the TenancyConfig property
150150
- tests/translator/output/**/function_with_tenancy_and_httpapi_event.json # cfnlint is not updated to recognize the TenancyConfig property
151151
- tests/translator/output/**/function_with_tenancy_config_global.json # cfnlint is not updated to recognize the TenancyConfig property
152+
- tests/translator/output/**/*durable_config*.json # TODO: Remove this once Durable Function is launched in CFN
152153

153154
ignore_checks:
154155
- E2531 # Deprecated runtime; not relevant for transform tests

samtranslator/__init__.py

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

samtranslator/internal/schema_source/aws_serverless_function.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -679,6 +679,7 @@ class Properties(BaseModel):
679679
) # TODO: add documentation
680680
PublishToLatestPublished: Optional[SamIntrinsicable[Union[str, bool]]] # TODO: add documentation
681681
TenancyConfig: Optional[PassThroughProp] # TODO: add documentation
682+
DurableConfig: Optional[PassThroughProp] # TODO: add documentation
682683

683684

684685
class Globals(BaseModel):
@@ -746,6 +747,7 @@ class Globals(BaseModel):
746747
) # TODO: add documentation
747748
PublishToLatestPublished: Optional[SamIntrinsicable[Union[str, bool]]] # TODO: add documentation
748749
TenancyConfig: Optional[PassThroughProp] # TODO: add documentation
750+
DurableConfig: Optional[PassThroughProp] # TODO: add documentation
749751

750752

751753
class Resource(ResourceAttributes):

samtranslator/model/lambda_.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ class LambdaFunction(Resource):
4040
"FunctionScalingConfig": GeneratedProperty(),
4141
"PublishToLatestPublished": GeneratedProperty(),
4242
"TenancyConfig": GeneratedProperty(),
43+
"DurableConfig": GeneratedProperty(),
4344
}
4445

4546
Code: Dict[str, Any]
@@ -72,6 +73,7 @@ class LambdaFunction(Resource):
7273
FunctionScalingConfig: Optional[Dict[str, Any]]
7374
PublishToLatestPublished: Optional[Dict[str, Any]]
7475
TenancyConfig: Optional[Dict[str, Any]]
76+
DurableConfig: Optional[Dict[str, Any]]
7577

7678
runtime_attrs = {"name": lambda self: ref(self.logical_id), "arn": lambda self: fnGetAtt(self.logical_id, "Arn")}
7779

samtranslator/model/sam_resources.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,7 @@ class SamFunction(SamResourceMacro):
198198
"VersionDeletionPolicy": PropertyType(False, IS_STR_ENUM(["Delete", "Retain"])),
199199
"PublishToLatestPublished": PassThroughProperty(False),
200200
"TenancyConfig": PassThroughProperty(False),
201+
"DurableConfig": PropertyType(False, IS_DICT),
201202
}
202203

203204
FunctionName: Optional[Intrinsicable[str]]
@@ -247,6 +248,7 @@ class SamFunction(SamResourceMacro):
247248
PublishToLatestPublished: Optional[PassThrough]
248249
VersionDeletionPolicy: Optional[Intrinsicable[str]]
249250
TenancyConfig: Optional[Dict[str, Any]]
251+
DurableConfig: Optional[Dict[str, Any]]
250252

251253
event_resolver = ResourceTypeResolver(
252254
samtranslator.model.eventsources,
@@ -690,6 +692,7 @@ def _construct_lambda_function(self, intrinsics_resolver: IntrinsicsResolver) ->
690692
lambda_function.LoggingConfig = self.LoggingConfig
691693
lambda_function.TenancyConfig = self.TenancyConfig
692694
lambda_function.RecursiveLoop = self.RecursiveLoop
695+
lambda_function.DurableConfig = self.DurableConfig
693696

694697
# Transform capacity provider configuration
695698
if self.CapacityProviderConfig:

samtranslator/plugins/globals/globals.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ class Globals:
5757
"RecursiveLoop",
5858
"SourceKMSKeyArn",
5959
"TenancyConfig",
60+
"DurableConfig",
6061
"CapacityProviderConfig",
6162
"FunctionScalingConfig",
6263
"PublishToLatestPublished",
@@ -117,6 +118,7 @@ class Globals:
117118
unreleased_properties: Dict[str, List[str]] = {
118119
SamResourceType.Function.value: [
119120
"TenancyConfig",
121+
"DurableConfig",
120122
"CapacityProviderConfig",
121123
"FunctionScalingConfig",
122124
"PublishToLatestPublished",

samtranslator/schema/schema.json

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142798,6 +142798,11 @@
142798142798
"title": "Description",
142799142799
"type": "string"
142800142800
},
142801+
"DurableConfig": {
142802+
"$ref": "#/definitions/AWS::Lambda::Function.DurableConfig",
142803+
"markdownDescription": "Configuration for durable function execution.",
142804+
"title": "DurableConfig"
142805+
},
142801142806
"Environment": {
142802142807
"$ref": "#/definitions/AWS::Lambda::Function.Environment",
142803142808
"markdownDescription": "Environment variables that are accessible from function code during execution.",
@@ -142977,6 +142982,22 @@
142977142982
},
142978142983
"type": "object"
142979142984
},
142985+
"AWS::Lambda::Function.DurableConfig": {
142986+
"additionalProperties": false,
142987+
"properties": {
142988+
"ExecutionTimeout": {
142989+
"markdownDescription": "The maximum execution timeout in seconds for durable function executions.",
142990+
"title": "ExecutionTimeout",
142991+
"type": "number"
142992+
},
142993+
"RetentionPeriodInDays": {
142994+
"markdownDescription": "The retention period in days for durable function execution history.",
142995+
"title": "RetentionPeriodInDays",
142996+
"type": "number"
142997+
}
142998+
},
142999+
"type": "object"
143000+
},
142980143001
"AWS::Lambda::Function.Environment": {
142981143002
"additionalProperties": false,
142982143003
"properties": {
@@ -278805,6 +278826,9 @@
278805278826
"markdownDescription": "A description of the function\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-description) property of an `AWS::Lambda::Function` resource\\.",
278806278827
"title": "Description"
278807278828
},
278829+
"DurableConfig": {
278830+
"$ref": "#/definitions/PassThroughProp"
278831+
},
278808278832
"Environment": {
278809278833
"$ref": "#/definitions/AWS::Lambda::Function.Environment",
278810278834
"markdownDescription": "The configuration for the runtime environment\\. \n*Type*: [Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Environment`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html) property of an `AWS::Lambda::Function` resource\\.",
@@ -279097,6 +279121,9 @@
279097279121
"title": "Description",
279098279122
"type": "string"
279099279123
},
279124+
"DurableConfig": {
279125+
"$ref": "#/definitions/PassThroughProp"
279126+
},
279100279127
"Environment": {
279101279128
"$ref": "#/definitions/AWS::Lambda::Function.Environment",
279102279129
"markdownDescription": "The configuration for the runtime environment\\. \n*Type*: [Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Environment`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html) property of an `AWS::Lambda::Function` resource\\.",

schema_source/cloudformation.schema.json

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142749,6 +142749,11 @@
142749142749
"title": "Description",
142750142750
"type": "string"
142751142751
},
142752+
"DurableConfig": {
142753+
"$ref": "#/definitions/AWS::Lambda::Function.DurableConfig",
142754+
"markdownDescription": "Configuration for durable function execution.",
142755+
"title": "DurableConfig"
142756+
},
142752142757
"Environment": {
142753142758
"$ref": "#/definitions/AWS::Lambda::Function.Environment",
142754142759
"markdownDescription": "Environment variables that are accessible from function code during execution.",
@@ -143119,6 +143124,22 @@
143119143124
},
143120143125
"type": "object"
143121143126
},
143127+
"AWS::Lambda::Function.DurableConfig": {
143128+
"additionalProperties": false,
143129+
"properties": {
143130+
"ExecutionTimeout": {
143131+
"markdownDescription": "The maximum execution timeout in seconds for durable function executions.",
143132+
"title": "ExecutionTimeout",
143133+
"type": "number"
143134+
},
143135+
"RetentionPeriodInDays": {
143136+
"markdownDescription": "The retention period in days for durable function execution history.",
143137+
"title": "RetentionPeriodInDays",
143138+
"type": "number"
143139+
}
143140+
},
143141+
"type": "object"
143142+
},
143122143143
"AWS::Lambda::LayerVersion": {
143123143144
"additionalProperties": false,
143124143145
"properties": {

schema_source/sam.schema.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5828,6 +5828,9 @@
58285828
"markdownDescription": "A description of the function\\. \n*Type*: String \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-description) property of an `AWS::Lambda::Function` resource\\.",
58295829
"title": "Description"
58305830
},
5831+
"DurableConfig": {
5832+
"$ref": "#/definitions/PassThroughProp"
5833+
},
58315834
"Environment": {
58325835
"__samPassThrough": {
58335836
"markdownDescriptionOverride": "The configuration for the runtime environment\\. \n*Type*: [Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Environment`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html) property of an `AWS::Lambda::Function` resource\\.",
@@ -6246,6 +6249,9 @@
62466249
],
62476250
"title": "Description"
62486251
},
6252+
"DurableConfig": {
6253+
"$ref": "#/definitions/PassThroughProp"
6254+
},
62496255
"Environment": {
62506256
"__samPassThrough": {
62516257
"markdownDescriptionOverride": "The configuration for the runtime environment\\. \n*Type*: [Environment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html) \n*Required*: No \n*AWS CloudFormation compatibility*: This property is passed directly to the [`Environment`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html) property of an `AWS::Lambda::Function` resource\\.",
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
Resources:
2+
FunctionWithDurableConfig:
3+
Type: AWS::Serverless::Function
4+
Properties:
5+
CodeUri: s3://sam-demo-bucket/hello.zip
6+
Handler: hello.handler
7+
Runtime: python3.9
8+
DurableConfig:
9+
ExecutionTimeout: 3600
10+
RetentionPeriodInDays: 45

0 commit comments

Comments
 (0)