forked from aws/serverless-application-model
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Test CloudWatchEvent Properties With Intrinsic Functions (aws#2090)
* Add headers whenever cors is set * Add cw event success cases * Replace GetAtt with condition * Cleanup test yaml * Cleanup test yaml * Remove files * Add intrinsic to pattern field * Fix wrong files committed
- Loading branch information
Showing
5 changed files
with
473 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
Parameters: | ||
PathA: | ||
Type: String | ||
Default: "SomeInputPath" | ||
PathB: | ||
Type: String | ||
Default: "AnotherInputPath" | ||
|
||
Conditions: | ||
PathCondition: | ||
Fn::Equals: | ||
- true | ||
- true | ||
|
||
Resources: | ||
LambdaFunction: | ||
Type: 'AWS::Serverless::Function' | ||
Properties: | ||
CodeUri: s3://sam-demo-bucket/hello.zip | ||
Handler: hello.handler | ||
Runtime: python2.7 | ||
Events: | ||
OnTerminate: | ||
Type: CloudWatchEvent | ||
Properties: | ||
EventBusName: !Join [ "", [ "Event", "Bus", "Name" ] ] | ||
Input: !Join [ ":", [ "{ Key", "Value }" ] ] | ||
InputPath: !If [ PathCondition, !Ref PathA, !Ref PathB ] | ||
Pattern: | ||
detail: | ||
state: !Split [ "," , "terminated,stopped" ] |
147 changes: 147 additions & 0 deletions
147
tests/translator/output/aws-cn/cloudwatchevent_intrinsics.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,147 @@ | ||
{ | ||
"Parameters": { | ||
"PathA": { | ||
"Type": "String", | ||
"Default": "SomeInputPath" | ||
}, | ||
"PathB": { | ||
"Type": "String", | ||
"Default": "AnotherInputPath" | ||
} | ||
}, | ||
"Conditions": { | ||
"PathCondition": { | ||
"Fn::Equals": [ | ||
true, | ||
true | ||
] | ||
} | ||
}, | ||
"Resources": { | ||
"LambdaFunction": { | ||
"Type": "AWS::Lambda::Function", | ||
"Properties": { | ||
"Code": { | ||
"S3Bucket": "sam-demo-bucket", | ||
"S3Key": "hello.zip" | ||
}, | ||
"Handler": "hello.handler", | ||
"Role": { | ||
"Fn::GetAtt": [ | ||
"LambdaFunctionRole", | ||
"Arn" | ||
] | ||
}, | ||
"Runtime": "python2.7", | ||
"Tags": [ | ||
{ | ||
"Key": "lambda:createdBy", | ||
"Value": "SAM" | ||
} | ||
] | ||
} | ||
}, | ||
"LambdaFunctionRole": { | ||
"Type": "AWS::IAM::Role", | ||
"Properties": { | ||
"AssumeRolePolicyDocument": { | ||
"Version": "2012-10-17", | ||
"Statement": [ | ||
{ | ||
"Action": [ | ||
"sts:AssumeRole" | ||
], | ||
"Effect": "Allow", | ||
"Principal": { | ||
"Service": [ | ||
"lambda.amazonaws.com" | ||
] | ||
} | ||
} | ||
] | ||
}, | ||
"ManagedPolicyArns": [ | ||
"arn:aws-cn:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" | ||
], | ||
"Tags": [ | ||
{ | ||
"Key": "lambda:createdBy", | ||
"Value": "SAM" | ||
} | ||
] | ||
} | ||
}, | ||
"LambdaFunctionOnTerminate": { | ||
"Type": "AWS::Events::Rule", | ||
"Properties": { | ||
"EventBusName": { | ||
"Fn::Join": [ | ||
"", | ||
[ | ||
"Event", | ||
"Bus", | ||
"Name" | ||
] | ||
] | ||
}, | ||
"EventPattern": { | ||
"detail": { | ||
"state": { | ||
"Fn::Split": [ | ||
",", | ||
"terminated,stopped" | ||
] | ||
} | ||
} | ||
}, | ||
"Targets": [ | ||
{ | ||
"Arn": { | ||
"Fn::GetAtt": [ | ||
"LambdaFunction", | ||
"Arn" | ||
] | ||
}, | ||
"Id": "LambdaFunctionOnTerminateLambdaTarget", | ||
"Input": { | ||
"Fn::Join": [ | ||
":", | ||
[ | ||
"{ Key", | ||
"Value }" | ||
] | ||
] | ||
}, | ||
"InputPath": { | ||
"Fn::If": [ | ||
"PathCondition", | ||
{ | ||
"Ref": "PathA" | ||
}, | ||
{ | ||
"Ref": "PathB" | ||
} | ||
] | ||
} | ||
} | ||
] | ||
} | ||
}, | ||
"LambdaFunctionOnTerminatePermission": { | ||
"Type": "AWS::Lambda::Permission", | ||
"Properties": { | ||
"Action": "lambda:InvokeFunction", | ||
"FunctionName": { | ||
"Ref": "LambdaFunction" | ||
}, | ||
"Principal": "events.amazonaws.com", | ||
"SourceArn": { | ||
"Fn::GetAtt": [ | ||
"LambdaFunctionOnTerminate", | ||
"Arn" | ||
] | ||
} | ||
} | ||
} | ||
} | ||
} |
147 changes: 147 additions & 0 deletions
147
tests/translator/output/aws-us-gov/cloudwatchevent_intrinsics.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,147 @@ | ||
{ | ||
"Parameters": { | ||
"PathA": { | ||
"Type": "String", | ||
"Default": "SomeInputPath" | ||
}, | ||
"PathB": { | ||
"Type": "String", | ||
"Default": "AnotherInputPath" | ||
} | ||
}, | ||
"Conditions": { | ||
"PathCondition": { | ||
"Fn::Equals": [ | ||
true, | ||
true | ||
] | ||
} | ||
}, | ||
"Resources": { | ||
"LambdaFunction": { | ||
"Type": "AWS::Lambda::Function", | ||
"Properties": { | ||
"Code": { | ||
"S3Bucket": "sam-demo-bucket", | ||
"S3Key": "hello.zip" | ||
}, | ||
"Handler": "hello.handler", | ||
"Role": { | ||
"Fn::GetAtt": [ | ||
"LambdaFunctionRole", | ||
"Arn" | ||
] | ||
}, | ||
"Runtime": "python2.7", | ||
"Tags": [ | ||
{ | ||
"Key": "lambda:createdBy", | ||
"Value": "SAM" | ||
} | ||
] | ||
} | ||
}, | ||
"LambdaFunctionRole": { | ||
"Type": "AWS::IAM::Role", | ||
"Properties": { | ||
"AssumeRolePolicyDocument": { | ||
"Version": "2012-10-17", | ||
"Statement": [ | ||
{ | ||
"Action": [ | ||
"sts:AssumeRole" | ||
], | ||
"Effect": "Allow", | ||
"Principal": { | ||
"Service": [ | ||
"lambda.amazonaws.com" | ||
] | ||
} | ||
} | ||
] | ||
}, | ||
"ManagedPolicyArns": [ | ||
"arn:aws-us-gov:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" | ||
], | ||
"Tags": [ | ||
{ | ||
"Key": "lambda:createdBy", | ||
"Value": "SAM" | ||
} | ||
] | ||
} | ||
}, | ||
"LambdaFunctionOnTerminate": { | ||
"Type": "AWS::Events::Rule", | ||
"Properties": { | ||
"EventBusName": { | ||
"Fn::Join": [ | ||
"", | ||
[ | ||
"Event", | ||
"Bus", | ||
"Name" | ||
] | ||
] | ||
}, | ||
"EventPattern": { | ||
"detail": { | ||
"state": { | ||
"Fn::Split": [ | ||
",", | ||
"terminated,stopped" | ||
] | ||
} | ||
} | ||
}, | ||
"Targets": [ | ||
{ | ||
"Arn": { | ||
"Fn::GetAtt": [ | ||
"LambdaFunction", | ||
"Arn" | ||
] | ||
}, | ||
"Id": "LambdaFunctionOnTerminateLambdaTarget", | ||
"Input": { | ||
"Fn::Join": [ | ||
":", | ||
[ | ||
"{ Key", | ||
"Value }" | ||
] | ||
] | ||
}, | ||
"InputPath": { | ||
"Fn::If": [ | ||
"PathCondition", | ||
{ | ||
"Ref": "PathA" | ||
}, | ||
{ | ||
"Ref": "PathB" | ||
} | ||
] | ||
} | ||
} | ||
] | ||
} | ||
}, | ||
"LambdaFunctionOnTerminatePermission": { | ||
"Type": "AWS::Lambda::Permission", | ||
"Properties": { | ||
"Action": "lambda:InvokeFunction", | ||
"FunctionName": { | ||
"Ref": "LambdaFunction" | ||
}, | ||
"Principal": "events.amazonaws.com", | ||
"SourceArn": { | ||
"Fn::GetAtt": [ | ||
"LambdaFunctionOnTerminate", | ||
"Arn" | ||
] | ||
} | ||
} | ||
} | ||
} | ||
} |
Oops, something went wrong.