【发布时间】:2021-01-02 13:59:12
【问题描述】:
我正在创建一个 Cloudwatch 事件规则,该规则应该在 Step Function 进入失败或超时状态时触发 lambda。云观察事件规则将参数传递给 lambda,后者将发送自定义 SNS 电子邮件。我正在尝试将输入参数的值从我在 Cloudformation 模板中设置的参数传递到 Cloudwatch 事件规则。我无法让 Cloudformation 将参数值提取到 Cloudwatch 事件规则输入参数中。 CF 采用我在 JSON 中提供的文字值并将其放入 Cloudwatch 事件规则中。我正在使用带有 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"}]]}}'
【问题讨论】:
标签: amazon-web-services amazon-cloudformation amazon-cloudwatch