【发布时间】:2010-10-12 03:46:32
【问题描述】:
如何从 ec2 实例中找出 ec2 实例的instance id?
【问题讨论】:
标签: amazon-ec2 amazon-web-services
如何从 ec2 实例中找出 ec2 实例的instance id?
【问题讨论】:
标签: amazon-ec2 amazon-web-services
在 Ubuntu 上,您可以:
sudo apt-get install cloud-utils
然后你可以:
EC2_INSTANCE_ID=$(ec2metadata --instance-id)
您可以通过这种方式获取与实例关联的大部分元数据:
ec2metadata --帮助 语法:/usr/bin/ec2metadata [选项] 查询和显示 EC2 元数据。 如果没有提供选项,将显示所有选项 选项: -h --help 显示此帮助 --kernel-id 显示内核ID --ramdisk-id 显示 ramdisk id --reservation-id 显示预订ID --ami-id 显示ami id --ami-launch-index 显示 ami 启动索引 --ami-manifest-path 显示 ami 清单路径 --ancestor-ami-ids 显示 ami 祖先 id --product-codes 显示 ami 关联的产品代码 --availability-zone 显示 ami 放置区域 --instance-id 显示实例id --instance-type 显示实例类型 --local-hostname 显示本地主机名 --public-hostname 显示公共主机名 --local-ipv4 显示本地ipv4 ip地址 --public-ipv4 显示公共 ipv4 ip 地址 --block-device-mapping 显示块设备ID --security-groups 显示安全组 --mac 显示实例mac地址 --profile 显示实例配置文件 --instance-action 显示实例操作 --public-keys 显示 openssh 公钥 --user-data 显示用户数据(实际上不是元数据)【讨论】:
apt-get install 检索不包含此实用程序的版本 0.11-0ubuntu1。它被添加到包just afterwards。
你可以试试这个:
#!/bin/bash
aws_instance=$(wget -q -O- http://169.254.169.254/latest/meta-data/instance-id)
aws_region=$(wget -q -O- http://169.254.169.254/latest/meta-data/hostname)
aws_region=${aws_region#*.}
aws_region=${aws_region%%.*}
aws_zone=`ec2-describe-instances $aws_instance --region $aws_region`
aws_zone=`expr match "$aws_zone" ".*\($aws_region[a-z]\)"`
【讨论】:
请参阅this post - 请注意,给定 URL 中的 IP 地址是不变的(一开始我很困惑),但返回的数据是特定于您的实例的。
【讨论】: