ECS 容器退出原因和退出代码

问题描述 投票:0回答:1

我开发了一个 lambda,当 ECS 容器由于某些问题退出时会触发该 lambda。 触发并根据收到的事件发送警报消息。

由于某种原因,当退出代码为0或1时,它不会返回任何原因。

所以我只是忽略了这个事件并专注于有原因的事件,以便 DevOps 团队可以根据实际原因正常工作,这会节省时间。

但是最近我收到退出代码为 2 的事件,我想知道这些退出代码是如何生成的,以及哪种退出代码会返回退出原因,这对于 DevOps 团队来说很重要。

谢谢你。

amazon-web-services aws-lambda amazon-ecs
1个回答
0
投票

一种解决方案可能是根据特定的退出代码采取行动并使用

DescribeTasks
和/或
GetLogEvents
API 来获取更多信息。

最常见的退出代码

  • 0 – 入口点、成功或 CMD 正在完成其执行,因此容器已停止。
  • 1 – 指应用程序错误。有关更多信息,请查看应用程序日志。
  • 137 – 当容器的任务被强制退出 (SIGKILL) 时发生: 未能在默认的 30 秒时间内响应 SIGTERM,之后发送 SIGKILL 值并强制停止容器。可以使用 ECS_CONTAINER_STOP_TIMEOUT 参数在 ECS 容器代理上配置默认的 30 秒时间段。 这也可能发生在内存不足 (OOM) 情况下。查看您的 CloudWatch 指标以验证是否发生 OOM。
  • 139 – 遇到分段错误时发生。应用程序可能尝试访问不可用的内存区域,或者存在未设置或无效的环境变量。
  • 255 – 当容器中的 ENTRYPOINT CMD 命令由于错误而失败时发生。查看您的 CloudWatch Logs 以确认这一点。
© www.soinside.com 2019 - 2024. All rights reserved.