CMa*_*Mag 8 amazon-web-services aws-cli
伙计们,我正在编写一个脚本,它将运行实例的标签导出为环境变量。自动缩放组的问题是这些标签对实例不可用。
如何通过 api/aws cli 命令知道实例属于哪个自动缩放组?我需要在脚本中使用实例标签,但是,它们不可用。建议?
谢谢!
如何通过 api/aws cli 命令知道实例属于哪个自动缩放组?
您可以将autoscaling describe-auto-scaling-instances
命令与选项一起使用 --instance-ids
,如下所示:
aws autoscaling describe-auto-scaling-instances --instance-ids="i-zzxxccvv"
Run Code Online (Sandbox Code Playgroud)
自动缩放组的问题是这些标签对实例不可用。[...] 我需要在脚本中使用实例标签,但是,它们不可用。建议?
我将其解释为您想获取实例所属的自动缩放组的标签?使用AutoScalingGroupName
上面显示的命令返回的结果,您可以使用以下命令:
aws autoscaling describe-tags --filters Name=auto-scaling-group,Values=name-of-the-auto-scaling-group-here
Run Code Online (Sandbox Code Playgroud)
小智 5
查找实例的自动缩放组的最简单方法是检查标签。自动缩放组中的任何实例都有一个aws:autoscaling:groupName
包含组名的命名标签。您可以使用以下命令检索该标签:
aws ec2 describe-tags --filters "Name=resource-id,Values=${INSTANCE}" "Name=key,Values=aws:autoscaling:groupName"
Run Code Online (Sandbox Code Playgroud)
然后您可以按照 Bazze 的描述获取标签。
对此的替代解决方案是将标签从自动缩放组传播到实例。
如果您使用 cloudformation 创建 ASG,"PropagateAtLaunch": "true"
则为要传播的每个标签进行设置(请参阅Aws Cloud Formation 文档)。
如果您手动创建组,请确保为每个标签选中“标记新实例”框。
完成此操作后,标签将被复制到实例中,您可以使用 describe tags 命令简单地检查实例的标签:
aws ec2 describe-tags --filters "Name=resource-id,Values=${INSTANCE}"
Run Code Online (Sandbox Code Playgroud)
我发现jq
对处理 aws cli 工具的输出很有帮助。例如,以下命令key=value
从 JSON生成一个列表:
aws ec2 describe-tags --filters "Name=resource-id,Values=${INSTANCE}" | jq -r '.Tags[] | @text "\(.Key)=\(.Value)"'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10727 次 |
最近记录: |