我正在创建一个 Cloudwatch 事件规则,如果 Step Function 进入失败或超时状态,该规则应该触发 lambda。云监视事件规则会将参数传递给 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": …Run Code Online (Sandbox Code Playgroud)