【发布时间】:2018-05-04 21:37:21
【问题描述】:
我们正在创建一个每 5 分钟运行一次的 cron 作业,它只是将“hello world”记录到我们的日志组中。这是通过 AWS Cloudformation 完成的,其任务只是回显“hello world”。
这是预定规则
ScheduledRule:
Type: "AWS::Events::Rule"
Properties:
Description: "ScheduledRule"
ScheduleExpression: "rate(5 minutes)"
State: "ENABLED"
Targets:
-
RoleArn:
Fn::GetAtt: [ RoleNeeded, Arn ]
Id: Cluster-Test-Cron-job
Arn:
Ref: ArnOfOurClusterTheScriptShouldExecute
EcsParameters:
TaskDefinitionArn:
Ref: TaskDefinitionThatExecutesLoggerScript
TaskCount: 1
Cloudwatch 指标显示任务已被触发,但也表明FailedInvocation。似乎我们在这里遗漏了一些东西,ScheduleExpression 是否足以让脚本每 5 分钟执行一次?我们检查了所需的角色,它已经是与策略AmazonEC2ContainerServiceEventsRole、ArnOfOurClusterTheScriptShouldExecute 和TaskDefinitionThatExecutesLoggerScript 一起使用的建议和推荐角色,因为我们测试了手动使用TaskDefinitionThatExecutesLoggerScript 设置运行任务并将其记录到我们的日志组。
我找到了这个question,但这也增加了 FailedInvocation 指标。
为了让脚本能够正确执行,我们在上述设置中遗漏了什么?
【问题讨论】:
标签: amazon-web-services amazon-cloudformation amazon-cloudwatch amazon-ecs