首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从实例内部查询EC2标签

从实例内部查询EC2标签
EN

Stack Overflow用户
提问于 2010-10-07 23:37:14
回答 17查看 112.5K关注 0票数 111

亚马逊最近添加了一个很棒的功能,用键值对标记EC2实例,使管理大量VM变得更容易。

有没有什么方法可以像查询其他用户设置的数据一样查询这些标记?例如:

代码语言:javascript
复制
$ curl http://169.254.169.254/latest/meta-data/placement/availability-zone
us-east-1d

有没有类似的方法来查询标签?

EN

回答 17

Stack Overflow用户

回答已采纳

发布于 2010-10-08 20:05:29

您可以组合使用AWS metadata tool (用于检索实例ID)和new Tag API来检索当前实例的标签。

票数 34
EN

Stack Overflow用户

发布于 2014-07-03 17:13:41

下面的bash脚本返回当前ec2实例的名称( " Name“标记的值)。根据您的特定情况修改TAG_NAME。

代码语言:javascript
复制
TAG_NAME="Name"
INSTANCE_ID="`wget -qO- http://instance-data/latest/meta-data/instance-id`"
REGION="`wget -qO- http://instance-data/latest/meta-data/placement/availability-zone | sed -e 's:\([0-9][0-9]*\)[a-z]*\$:\\1:'`"
TAG_VALUE="`aws ec2 describe-tags --filters "Name=resource-id,Values=$INSTANCE_ID" "Name=key,Values=$TAG_NAME" --region $REGION --output=text | cut -f5`"

安装aws cli

代码语言:javascript
复制
sudo apt-get install python-pip -y
sudo pip install awscli

如果您使用IAM而不是显式凭据,请使用以下IAM权限:

代码语言:javascript
复制
{
  "Version": "2012-10-17",
  "Statement": [
    {    
      "Effect": "Allow",
      "Action": [ "ec2:DescribeTags"],
      "Resource": ["*"]
    }
  ]
}
票数 72
EN

Stack Overflow用户

发布于 2011-08-19 21:55:49

安装了ec2-metadataec2-describe-tags之后(如Ranieri's answer above中所述),假设您有一个"Name=Foo“标记,下面是一个获取当前实例”名称“的示例外壳命令。

假设设置了EC2_PRIVATE_KEY和EC2_CERT环境变量。

代码语言:javascript
复制
ec2-describe-tags \
  --filter "resource-type=instance" \
  --filter "resource-id=$(ec2-metadata -i | cut -d ' ' -f2)" \
  --filter "key=Name" | cut -f5

这将返回Foo

票数 47
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3883315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档