如何解决在Cloudformation中将参数输入到Cloudwatch事件规则输入参数
我正在创建一个Cloudwatch事件规则,如果Step Function进入失败或超时状态,该规则应触发lambda。云监视事件规则将参数传递给lambda,该lambda将发送自定义SNS电子邮件。我试图将输入参数的值从我在Cloudformation模板中设置的参数传递到Cloudwatch事件规则中。我无法从Cloudformation提取参数值并将其放入Cloudwatch Event Rule Input参数中。 CF接受我在JSON中提供的文字值,并将其放入Cloudwatch Event规则中。我正在使用带有JSON参数文件的YAML模板。在下面发布代码。
FailureEvent:
Type: AWS::Events::Rule
DependsOn:
- StateMachine
Properties:
Description: !Ref FailureRuleDescription
Name: !Ref FailureRuleName
EventPattern:
detail-type:
- "Step Functions Execution Status Change"
detail:
status:
- "FAILED"
- "TIMED_OUT"
stateMachineArn: [!Ref StateMachine]
Targets:
- Arn:
'Fn::Join': ["",['arn:aws:lambda:',!Ref 'AWS::Region',':',!Ref 'AWS::AccountId',':function:',!Ref FailureLambda]]
Id: !Ref FailureLambda
Input: '{"failed_service": "!Ref StateMachineName","sns_arn": {"Fn::Join":[":",["arn: aws: sns",{"Ref": "AWS: : Region"},{"Ref": "AWS::AccountId"},{"Ref": "SNSTopic"}]]}}'
解决方法
您可以使用Sub:
Input: !Sub '{"failed_service": "${StateMachineName}","sns_arn": "arn:aws:sns:${AWS::Region}:${AWS::AccountId}:${SNSTopic}"}'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。