亚马逊最近添加了一个很棒的功能,用键值对标记EC2实例,使管理大量VM变得更容易。
有没有什么方法可以像查询其他用户设置的数据一样查询这些标记?例如:
$ curl http://169.254.169.254/latest/meta-data/placement/availability-zone
us-east-1d有没有类似的方法来查询标签?
发布于 2010-10-08 20:05:29
您可以组合使用AWS metadata tool (用于检索实例ID)和new Tag API来检索当前实例的标签。
发布于 2014-07-03 17:13:41
下面的bash脚本返回当前ec2实例的名称( " Name“标记的值)。根据您的特定情况修改TAG_NAME。
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
sudo apt-get install python-pip -y
sudo pip install awscli如果您使用IAM而不是显式凭据,请使用以下IAM权限:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [ "ec2:DescribeTags"],
"Resource": ["*"]
}
]
}发布于 2011-08-19 21:55:49
安装了ec2-metadata和ec2-describe-tags之后(如Ranieri's answer above中所述),假设您有一个"Name=Foo“标记,下面是一个获取当前实例”名称“的示例外壳命令。
假设设置了EC2_PRIVATE_KEY和EC2_CERT环境变量。
ec2-describe-tags \
--filter "resource-type=instance" \
--filter "resource-id=$(ec2-metadata -i | cut -d ' ' -f2)" \
--filter "key=Name" | cut -f5这将返回Foo。
https://stackoverflow.com/questions/3883315
复制相似问题