php - 在 AWS 中查找我的实例区域

标签 php ubuntu amazon-web-services ubuntu-12.04

给定这些参数:

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

实例脚本明确确定其运行区域的最优雅方式是什么?

* **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 作业和其他自定义服务可以确定他们是谁以及他们在哪里,以便他们可以适本地与其他服务和实例交互。

最佳答案

这应该适合你:

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

关于php - 在 AWS 中查找我的实例区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17999723/

相关文章:

php - 使用自定义模板自定义Pagerfanta分页的布局

php - 无法使用 Behat Mink 扩展框架在输入字段中附加文件(csv 文件)

php - 有没有办法只使用 glob() 文件?

linux - x11 - ModuleNotFoundError : No module named 'kivy.core.window.window_x11' - Unable to run Kivy

php - 错误 2002 (HY000) : Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13) Ubuntu

amazon-web-services - 如何找出 AWS 上每个实例每月的成本

amazon-web-services - aws cli s3 同步,排除不工作

php - 语法错误或访问冲突 : 1067 Invalid default value for 'created_at'

带有符号的 Git 分支标 checkout 现在我的命令行上

amazon-web-services - terraform:有没有办法动态创建 iam 策略声明?