我正在使用 boto3 sdk 查询 AWS ECS API,以完整描述 Fargate 集群。
我首先获取集群的服务,然后获取每个服务的任务。
任务包含一个关键的容器
,其中包含容器列表。它们各自具有以下形式的 ARN:arn:aws:ecs:eu-west-2:822276179620:container/16328278-00a3-334f-b60c-5e966badd794
然后,我尝试将这些 ARN 传递到 boto3 的 describe_container_instances
,传递正确的集群名称以及上述容器 ARN 的列表。它出错,声称容器标识符无效。通过一些实验,我发现,如果我在 container/
之后分离出 ARN 的一部分并使用它,它不再出现错误,但是,它声称所有的容器实例都是“MISSING”(在“失败”键)。
有趣的是,如果我尝试直接在集群上运行 list_container_instances
,它会返回一个空列表(200 响应,没有错误)。
综上所述,API似乎不愿意让我直接看到容器。我只能将它们视为任务对象的成员(该对象不包含我需要的有关它们的所有信息)。
最佳答案
describe_container_instances返回有关容器实例的信息:
Describes Amazon Elastic Container Service container instances. Returns metadata about registered and remaining resources on each container instance requested.
但是,您正在运行 Fargate 集群,因此您无权访问实例。它们由 AWS 管理。
如果您正在运行 EC2-type cluster,您将能够访问容器实例,而不是 Fargate:
EC2 Launch Type: The EC2 launch type allows you to run your containerized applications on a cluster of Amazon EC2 instances that you manage.
关于amazon-web-services - 直接查询时AWS describe_containers返回空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62656849/