对失败的 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
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