如何查找部署在 "I'm" 中的环境信息

How to find info of the environment "I'm" deployed in

我是 运行 elastic beanstalk 上的应用程序。

如何找到我的应用程序名称?换句话说,运行在elastic beanstalk中的应用程序如何找到关于自己的信息。

或有关当前应用程序运行环境的其他信息。

如果这些信息中的一些可以通过系统属性获得,我不会感到惊讶。

更新: 有件事我忘了提(抱歉)。它是 java 应用程序,我更愿意使用 JAVA SDK 来获取此信息

您可以通过从实例导航到此内部地址来查询有关实例的元数据:

http://169.254.169.254/latest/meta-data/

您可以使用许多不同的方法来查询和分析此数据的结果以供您使用。

在此处查看有关 Instance Metadata and Userdata 的更多信息。

另一种相当麻烦的查找环境名称的方法是检查 Elastic Beanstalk 实例的根文件夹。截至今天,EC2 实例的根文件夹中有一个名为 /<aws-env-name>_LaunchFile 的文件(caveat emptor: 这可以随时更改)。

例如,如果您的环境名称是 "mycoolapp-dev",那么在您的 Elastic Beanstalk 实例的根目录中将有一个名为 mycoolapp-dev_LaunchFile 的文件。为了使 loggly and newrelic 之类的东西正常工作,有时为您的主机提供一个正确的主机名很有用(两种服务仍然记录 IP,这是原始的 EC2 IP)。

可以将下面的命令片段粘贴到您的 .ebextensions 文件夹 .config 文件中,以将主机名设置为 mycoolapp-dev 以使这些服务正常工作。

commands:
    00_set_hostname:
        command: "hostname `ls /*_LaunchFile | sed -e 's/\/\(.*\)_LaunchFile$//'`"

或者一个非常好的解决方案是使用 this link by Steel Pangolin - Jeremy Ehrhardt