AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 654791
Accepted
CMag
CMag
Asked: 2014-12-26 20:43:26 +0800 CST2014-12-26 20:43:26 +0800 CST 2014-12-26 20:43:26 +0800 CST

在 AWS 中获取自动缩放组名称

  • 772

伙计们,我正在编写一个脚本,它将运行实例的标签导出为环境变量。自动缩放组的问题是这些标签对实例不可用。

如何通过 api/aws cli 命令知道实例属于哪个自动缩放组?我需要在脚本中使用实例标签,但是它们不可用。建议?

谢谢!

amazon-web-services
  • 4 4 个回答
  • 12473 Views

4 个回答

  • Voted
  1. Best Answer
    Bazze
    2014-12-27T06:37:09+08:002014-12-27T06:37:09+08:00

    如何通过 api/aws cli 命令知道实例属于哪个自动缩放组?

    您可以将autoscaling describe-auto-scaling-instancescommand 与 option 一起使用 --instance-ids,如下所示:

    aws autoscaling describe-auto-scaling-instances --instance-ids="i-zzxxccvv"
    

    自动缩放组的问题是这些标签对实例不可用。[...] 我需要在脚本中使用实例标签,但是它们不可用。建议?

    我将其解释为您想获取实例所属的自动缩放组的标签?使用AutoScalingGroupName上面显示的命令返回的内容,您可以使用以下命令:

    aws autoscaling describe-tags --filters Name=auto-scaling-group,Values=name-of-the-auto-scaling-group-here
    
    • 9
  2. sihil
    2015-05-31T05:50:52+08:002015-05-31T05:50:52+08:00

    查找实例的自动缩放组的最简单方法是检查标签。自动缩放组中的任何实例都将具有一个aws:autoscaling:groupName包含组名称的标签。您可以使用以下命令检索该标签:

    aws ec2 describe-tags --filters "Name=resource-id,Values=${INSTANCE}" "Name=key,Values=aws:autoscaling:groupName"
    

    然后,您可以按照 Bazze 的描述获取标签。

    对此的替代解决方案是将标签从自动缩放组传播到实例。

    如果您使用 cloudformation 创建 ASG,"PropagateAtLaunch": "true"则为要传播的每个标签进行设置(请参阅Aws Cloud Formation 文档)。

    如果您手动创建组,请确保选中每个标签的“标记新实例”框。

    完成此操作后,标签将被复制到实例中,您可以使用 describe tags 命令简单地检查实例的标签:

    aws ec2 describe-tags --filters "Name=resource-id,Values=${INSTANCE}"
    

    我发现jq对处理 aws cli 工具的输出很有帮助。例如,以下命令key=value从 JSON 生成一个列表:

    aws ec2 describe-tags --filters "Name=resource-id,Values=${INSTANCE}" | jq -r '.Tags[] | @text "\(.Key)=\(.Value)"'
    
    • 5
  3. ErnieAndBert
    2019-08-17T07:11:31+08:002019-08-17T07:11:31+08:00

    把它们放在一起:

    INSTANCE_ID=`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id`
    ASG_NAME=`aws ec2 describe-tags --filters "Name=resource-id,Values=$INSTANCE_ID"  --region us-east-2 | jq '.Tags[] | select(.["Key"] | contains("aws:autoscaling:groupName")) | .Value'`
    ASG_NAME=`echo $ASG_NAME | tr -d '"'`
    

    做一个echo $ASG_NAME,你应该看到它。

    • 1
  4. AstroTom
    2021-05-07T06:21:33+08:002021-05-07T06:21:33+08:00

    最简单的获取自动缩放组名称如下:

    aws autoscaling describe-auto-scaling-instances --query=AutoScalingInstances[].AutoScalingGroupName --instance-ids=$(curl -s http://169.254.169.254/latest/meta-data/instance-id) --output text
    
    • 1

相关问题

  • AWS RDS 的定价 [关闭]

  • 如何在 AWS ubuntu 实例上安装 apache?

  • 了解 Amazon AWS 使用数据

  • 亚马逊提供的负载均衡服务体验如何?

  • ELB 中现有节点的 AWS 自动缩放问题

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve