wji*_*jin 6 amazon-ec2 amazon-web-services elastic-beanstalk
我希望能够从我的 EC2 实例中提取有关当前弹性 beanstalk 环境的信息,以便我可以将此信息包含在从我的服务器发送的错误电子邮件中。
例如,知道当前环境的名称和部署代码的版本标签都会很有用。有没有人知道以编程方式执行此操作?我知道已经有一个用于检索 EC2 信息(例如公共主机名和 AMI-id 等)的 API,但是我找不到有关弹性 beantalk 的任何内容。
目前我的解决方案是手动设置一些我的应用程序可以读取的环境变量,但显然这很麻烦。
小智 7
经过一番在互联网上的挖掘后,我发现了。我知道这个问题很老了,但我想我会给出这个答案。
$ /opt/elasticbeanstalk/bin/get-config container -k environment_name
Run Code Online (Sandbox Code Playgroud)
我已经想通了。对于那些好奇的人:
我可以通过http://169.254.169.254/latest/meta-data/
. 特别是我想要我的 EC2 实例 ID
我可以通过describe-environments确定我所有 beanstalk 环境的列表
对于我可以运行的每个环境describe-environment-resources
。此调用返回一个实例列表,我可以将当前实例的实例 ID 与其进行匹配。因此我可以找出我的环境名称。
最后,我还可以参考 的结果describe-environments
来确定当前部署代码的版本标签。
在我可以做任何这些之前,我需要配置我的 ec2 实例以访问弹性 beantalk 信息。我可以通过将正确的访问策略分配给与我的 ec2 实例关联的角色并再次通过实例元数据获取身份验证信息来做到这一点http://169.254.169.254/latest/meta-data/
由于我使用的是 pythonboto
库,我上面描述的所有操作都已经有预烘焙的库函数来为我执行它们。
咕
我还没有编码它,但如果我可以让它工作,我会在这里发布一个剪辑
编辑 工作代码
归档时间: |
|
查看次数: |
5988 次 |
最近记录: |