Skip to content

Commit

Permalink
Test CloudWatchEvent Properties With Intrinsic Functions (aws#2090)
Browse files Browse the repository at this point in the history
* 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
mildaniel authored and mgrandis committed Sep 7, 2021
1 parent d1590f8 commit 5a85aea
Show file tree
Hide file tree
Showing 5 changed files with 473 additions and 0 deletions.
31 changes: 31 additions & 0 deletions tests/translator/input/cloudwatchevent_intrinsics.yaml
@@ -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 tests/translator/output/aws-cn/cloudwatchevent_intrinsics.json
@@ -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 tests/translator/output/aws-us-gov/cloudwatchevent_intrinsics.json
@@ -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"
]
}
}
}
}
}

0 comments on commit 5a85aea

Please sign in to comment.