如何获取正在运行的aws ecs任务的外部链接,其中包含容器实例的公共ip和正在运行的任务的端口?
我正在管理来自cli的任务/服务执行,并希望从aws cli获取aws UI中显示的外部链接。我尝试了aws cli的describe-tasks命令,但它没有返回正在运行任务的实例的公共IP地址。
有没有办法从aws cli中获取相同的内容?
提前致谢!
答案 0 :(得分:3)
这确实是脖子上的疼痛,但是它将满足您的要求:
aws ecs list-tasks --cluster mycluster --service-name my-service-name
aws ecs describe-tasks --cluster mycluster --tasks arn:aws:ecs:us-east-1:999999999999:task/ad0ba3e9-ac3b-4a4c-a1af-de3e06f46dfa
aws ecs describe-container-instances --cluster mycluster --container-instances arn:aws:ecs:us-east-1:999999999999:container-instance/707e5193-51e3-454b-ba09-9745c5d7f527
aws ec2 describe-instances --instance-ids i-c91aee40d92c23b3c
^^^^ NOT ECS
此命令的输出应包括EC2实例的专用IP。此IP +先前计算的端口应对应于Web UI的外部链接。
注意:数据已被匿名处理,但仍应看起来像您期望看到的那样。另外,我省略了AWS区域和配置文件参数,这些参数已使用环境变量设置为默认值。
答案 1 :(得分:2)
这应该显示您的Ingress IP地址,这是一个公共URL,然后通常使用AWS route53控制台作为A类记录映射到您的域,这样您的用户只需使用您的URL domain.com/lalala
aws ecs describe-services --service my-http-service
发现这个命令和其他人一般aws
命令行工具实际上非常友好......只是问题
aws help
然后查看可用子命令的顶级列表,然后通过发出
进行深入研究aws ecs help
并在上面重复深入挖掘可用命令,直到找到可行的方式......如
ecs ecs describe-services help
答案 2 :(得分:1)
您可以通过以下方式获得所需的答案:
aws ecs describe-tasks --cluster foo --tasks 8591006e-6f05-4886-bc4a-58d9063d3852
这将包含networkBindings部分,如下所示:
"networkBindings": [
{
"protocol": "tcp",
"bindIP": "0.0.0.0",
"containerPort": 7000,
"hostPort": 32769
},
{
"protocol": "tcp",
"bindIP": "0.0.0.0",
"containerPort": 7001,
"hostPort": 32768
}
]
然后你是金色的!