在AWS中查找我的实例区域

问题描述 投票:3回答:2

鉴于这些参数:

  1. 在任何地方运行的Ubuntu实例(该区域中的任何区域和任何可用区域)
  2. 仅在实例上安装AWS PHP SDK2(没有其他EC2命令行工具等)
  3. CURL和WGET可用

实例脚本最明确地确定运行哪个Region的方式是什么?

* **Instance ID:** wget -q -O - http://169.254.169.254/latest/meta-data/instance-id
* **Availability Zone:** wget -q -O - http://169.254.169.254/latest/meta-data/placement/availability-zone

meta-data does not目前提供此信息。

我们知道,目前,可以从可用区域中删除尾随字符以便天真地确定区域,但是,亚马逊将来不会改变它的no guarantee

最终目标是我们的cron作业和其他自定义服务可以确定它们的位置和位置,以便它们可以适当地与其他服务和实例进行交互。

php ubuntu amazon-web-services ubuntu-12.04
2个回答
5
投票

这应该适合你:

REGION=`curl -s http://169.254.169.254/latest/dynamic/instance-identity/document|grep region|awk -F\" '{print $4}'`

echo $REGION

它来自这个主题:

Find region from within an EC2 instance


1
投票

使用PHP SDK,您可以执行以下操作:

$instance = \Aws\Common\InstanceMetadata\InstanceMetadataClient::factory()
    ->get('dynamic/instance-identity/document')
    ->send()
    ->json();

echo $instance['region'];
© www.soinside.com 2019 - 2024. All rights reserved.