【问题标题】:How to get the instance id from within an ec2 instance?如何从 ec2 实例中获取实例 ID?
【发布时间】:2010-10-12 03:46:32
【问题描述】:

如何从 ec2 实例中找出 ec2 实例的instance id

【问题讨论】:

    标签: amazon-ec2 amazon-web-services


    【解决方案1】:

    在 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 显示用户数据(实际上不是元数据)

    【讨论】:

    • 在 Ubuntu 下 lucid apt-get install 检索不包含此实用程序的版本 0.11-0ubuntu1。它被添加到包just afterwards
    • cloud-utils 软件包默认包含在 Ubuntu 12.04.1 LTS 集群计算 AMI 中。
    • cloud-utils 似乎也在 RHEL/CentOS 中
    【解决方案2】:

    你可以试试这个:

    #!/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]\)"`
    

    【讨论】:

      【解决方案3】:

      请参阅this post - 请注意,给定 URL 中的 IP 地址是不变的(一开始我很困惑),但返回的数据是特定于您的实例的。

      【讨论】:

      • 链接对我来说是 404ing
      • 在下面查看@DEtDev 的答案;我的回答很老了,看起来链接已被删除。
      猜你喜欢
      • 1970-01-01
      • 2011-07-01
      • 2019-07-08
      • 2013-02-27
      • 2015-05-13
      • 1970-01-01
      • 1970-01-01
      • 2018-03-13
      • 1970-01-01
      相关资源
      最近更新 更多