对失败的 cloudwatch 事件进行故障排除

troubleshoot failed cloudwatch events

cloudformation 模板的这一部分创建事件,但不实际执行它。

  MyCWEventRule:
    Type: AWS::Events::Rule
    Properties: 
      Name: my-batch-event-rule
      ScheduleExpression: cron(01 07 ? * * *)
      State: ENABLED
      Targets: 
        - Id: my-batch-job
          Arn: !Ref Queue
          BatchParameters: 
            JobDefinition: !Ref StartJob
            JobName: tds-job
          RoleArn: !Join [ "", [!Sub "arn:aws:iam::${AWS::AccountId}:role/service-role/", !Ref ruleIAMRole]]

没有日志可以检查问题所在。如果我自己使用控制台提交作业,它会按预期工作。 如图所示,cron 中提到的作业定义参数是正确的...

如何解决失败的 cloudwatch 事件?


更新:

当我单击“编辑”并使用“为此特定资源创建新角色”时,它起作用了。 这意味着线路有问题...

RoleArn: !Join [ "", [!Sub "arn:aws:iam::${AWS::AccountId}:role/service-role/", !Ref ruleIAMRole]]

你猜对了! ARN 角色路径中不需要“service-role”。它应该看起来像这样...

RoleArn: !Join [ "", [!Sub "arn:aws:iam::${AWS::AccountId}:role/", !Ref ruleIAMRole]]

甚至更好:

RoleArn: !GetAtt ruleIAMRole.Arn