如何从ec2实例中找到ec2实例的实例id ?
当前回答
对于powershell用户:
(New-Object System.Net.WebClient).DownloadString("http://169.254.169.254/latest/meta-data/instance-id")
其他回答
对于Windows实例:
(wget http://169.254.169.254/latest/meta-data/instance-id).Content
or
(ConvertFrom-Json (wget http://169.254.169.254/latest/dynamic/instance-identity/document).Content).instanceId
一个更现代的解决方案。
在Amazon Linux中已经安装了ec2-metadata命令。
从终点站
ec2-metadata -help
会给你可用的选项吗
ec2-metadata -i
将返回
instance-id: yourid
请参阅这篇文章-注意URL中给出的IP地址是常量(这一开始让我感到困惑),但返回的数据是特定于您的实例的。
简单的一行
猫/ sys /设备/虚拟/ dmi / id / board_asset_tag
or
Curl_cli -s http://169.254.169.254/latest/meta-data/instance-id
来源:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/identify_ec2_instances.html
请参阅有关该主题的EC2文档。
Run:
wget -q -O - http://169.254.169.254/latest/meta-data/instance-id
如果您需要从脚本中编程访问实例ID,
die() { status=$1; shift; echo "FATAL: $*"; exit $status; }
EC2_INSTANCE_ID="`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id || die \"wget instance-id has failed: $?\"`"
下面是一个更高级的使用示例(检索实例ID以及可用性区域和区域等):
EC2_INSTANCE_ID="`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id || die \"wget instance-id has failed: $?\"`"
test -n "$EC2_INSTANCE_ID" || die 'cannot obtain instance-id'
EC2_AVAIL_ZONE="`wget -q -O - http://169.254.169.254/latest/meta-data/placement/availability-zone || die \"wget availability-zone has failed: $?\"`"
test -n "$EC2_AVAIL_ZONE" || die 'cannot obtain availability-zone'
EC2_REGION="`echo \"$EC2_AVAIL_ZONE\" | sed -e 's:\([0-9][0-9]*\)[a-z]*\$:\\1:'`"
您也可以使用curl而不是wget,这取决于您的平台上安装了什么。
推荐文章
- 拒绝访问;您需要(至少一个)SUPER特权来执行此操作
- 我如何使用通配符“cp”一组文件与AWS CLI
- 我如何获得亚马逊的AWS_ACCESS_KEY_ID ?
- 如何使所有对象在AWS S3桶公共默认?
- 为什么我应该使用亚马逊Kinesis而不是SNS-SQS?
- 如何重命名AWS S3 Bucket
- AWS ECS中的任务和服务之间有什么区别?
- 亚马逊SimpleDB vs亚马逊DynamoDB
- 亚马逊ECS和亚马逊EC2有什么区别?
- 我如何知道我在S3桶中存储了多少对象?
- S3 Bucket操作不应用于任何资源
- 将AWS凭证传递给Docker容器的最佳方法是什么?
- 当权限为S3时,AccessDenied for ListObjects for S3 bucket:*
- 电子邮件地址未验证(AWS SES)
- 使用Boto3将S3对象作为字符串打开