使用 boto 识别 ECS 服务的特定图像 运行?
Identifying the specific image(s) running for an ECS service with boto?
如果我想验证 ECS 服务是 运行 标签的最新图像,我该怎么做?
我可以:
describe_services
获取任务定义
describe_task_definition
获取图片关联
但是该图像采用任务定义中的任何形式。如果任务定义说 service:1.1
,那是一个好的开始,但如果自部署以来已推送标记为 service:1.1
的新图像怎么办?无法通过查看任务定义中的图像来判断。
也许这是有道理的,因为毕竟它是定义,而不是任务本身。那么 describe_tasks
呢?看起来很有前途。除了 describe_tasks
根本不谈论图像。它确实有一个容器 ARN,但那有什么用呢?我根本找不到任何使用容器 ARN 的 API 调用——我是不是漏掉了什么?
基本上——对于 ECS 服务上的每个任务,有没有什么方法可以将特定图像识别到 运行 的摘要级别,以便您可以判断是否应该强制进行新部署?
经 Amazon Support 确认,目前没有很好的方法来验证部署在给定任务上的镜像是否与使用任务定义中指定的标签推送的最新镜像相同。
这并不理想,但我想我可以将部署的 updatedAt
和任务定义的图像与图像的 pushedAt
进行比较。那不会给我明确的 "which image am I using",但它会告诉我 "has the image tag been pushed since the service was updated?"
如果我想验证 ECS 服务是 运行 标签的最新图像,我该怎么做?
我可以:
describe_services
获取任务定义describe_task_definition
获取图片关联
但是该图像采用任务定义中的任何形式。如果任务定义说 service:1.1
,那是一个好的开始,但如果自部署以来已推送标记为 service:1.1
的新图像怎么办?无法通过查看任务定义中的图像来判断。
也许这是有道理的,因为毕竟它是定义,而不是任务本身。那么 describe_tasks
呢?看起来很有前途。除了 describe_tasks
根本不谈论图像。它确实有一个容器 ARN,但那有什么用呢?我根本找不到任何使用容器 ARN 的 API 调用——我是不是漏掉了什么?
基本上——对于 ECS 服务上的每个任务,有没有什么方法可以将特定图像识别到 运行 的摘要级别,以便您可以判断是否应该强制进行新部署?
经 Amazon Support 确认,目前没有很好的方法来验证部署在给定任务上的镜像是否与使用任务定义中指定的标签推送的最新镜像相同。
这并不理想,但我想我可以将部署的 updatedAt
和任务定义的图像与图像的 pushedAt
进行比较。那不会给我明确的 "which image am I using",但它会告诉我 "has the image tag been pushed since the service was updated?"