获取从 aws cli 运行的 ecs 任务的外部链接

pma*_*ann 5 amazon-web-services amazon-ecs aws-cli

如何获取aws ecs任务运行的外部链接,其中包含容器实例的公共ip和任务运行的端口?

我正在从 cli 管理任务/服务执行,并希望从 aws cli 获取显示在 aws UI 中的外部链接。我尝试了 aws cli 的 describe-tasks 命令,但它没有返回运行任务的实例的公共 IP 地址。

有没有办法从 aws cli 中获取相同的内容?

提前致谢!

Tim*_*ing 5

这是脖子上的痛,但它会做你想做的事:

  1. 按服务名称列出您的任务

aws ecs list-tasks --cluster mycluster --service-name my-service-name

  1. 使用上面的任务 ARN 获取任务的详细信息。

aws ecs describe-tasks --cluster mycluster --tasks arn:aws:ecs:us-east-1:999999999999:task/ad0ba3e9-ac3b-4a4c-a1af-de3e06f46dfa

  1. 任务描述包括您需要的两条信息:网络绑定,其中包括端口(查找映射到您关心的服务端口的端口)和容器实例 ARN。(不是容器 ARN。不要像我一样在下一步失败时犯那个错误并感到非常困惑)。使用容器实例的 ARN,获取容器实例的详细信息:

aws ecs describe-container-instances --cluster mycluster --container-instances arn:aws:ecs:us-east-1:999999999999:container-instance/707e5193-51e3-454b-ba09-9745c5d7f527

  1. 作为此描述的一部分,您应该能够获取 EC2 实例 ID 并查询 EC2 以获取更多详细信息:

aws ec2 describe-instances --instance-ids i-c91aee40d92c23b3c ^^^^ NOT ECS

此命令的输出应包含 EC2 实例的私有 IP。此 IP + 先前计算的端口应对应于来自 Web UI 的外部链接。

注意:数据已被匿名化,但仍应与您期望看到的一样。我还省略了 AWS 区域和配置文件参数,我已使用环境变量将其设置为默认值。