Tou*_*uko 11 exit-code amazon-web-services amazon-ecs amazon-cloudwatch aws-event-bridge
我们设置了通过 CloudWatch Events / EventBridge 安排的 AWS ECS 任务。我们希望根据容器退出代码获得失败运行的指标和通知。
我们计划使用通过 CloudWatch Metrics 监控使用情况中的 FailedInitations 。
但是,指标中似乎没有看到非零任务退出代码。ECS 任务的退出代码在 AWS 控制台中被验证为非零,但指标仅包括“调用”和“触发规则”。我们之前在设置任务时遇到了 FailedInitations,并且缺少启动任务所需的策略,但非零退出代码似乎不会影响该指标。
难道只是 EventBridge 不提供非零容器退出代码的指标,还是我们可能会在设置中遗漏某些内容?
我们可以通过记录某些错误消息的任务来解决这个问题,但退出代码会更通用。
我创建了一个 CW 规则,它将捕获容器停止时触发的事件。
这就是 python CDK 代码中的内容,但参数应该可以帮助指导您。
result_rule = events.Rule(self, 'TaskCompletion%s' % id_suffix,
event_pattern=events.EventPattern(
source=["aws.ecs"],
detail_type=["ECS Task State Change"],
region=[scope.env.region],
detail={
"lastStatus": ["STOPPED"],
"containers":
{
"name": [container_name]
}
}
),
targets=[
targets.SqsQueue(
queue=scope.result_queue,
)
]
)
Run Code Online (Sandbox Code Playgroud)
它将事件的整个上下文发送到 SQS 队列(也可以是 SNS,您可能需要 Lambda 来处理它)
然后 lambda 可以从该上下文读取退出代码,并且:
允许您创建有关退出代码(0 或非 0)的指标,还可以报告运行时指标。
| 归档时间: |
|
| 查看次数: |
3748 次 |
| 最近记录: |