AWS Elasic Beanstalk:从实例中检索环境 URL?

AWS Elasic Beanstalk:从实例中检索环境 URL?

从 Beanstalk 实例中,我如何以编程方式检索我的环境的 URL?

我需要知道这一点,因为实例需要知道它们是在生产中运行还是

我无法使用平台脚本/opt/elasticbeanstalk/bin/get-config ...或实例元数据找到它curl http://169.254.169.254/latest/...

答案1

据我所知,您只能从 Elastic Beanstalk API 获取此信息,如下所示;

aws elasticbeanstalk describe-environments \
    --region <your-region> \
    --environment-names <your-environment-name> \
    --query "Environments[0].CNAME"

以上将输出;

"your-eb-cname.aws-region.elasticbeanstalk.com"

答案2

感谢@dannosaur 的提示,我找到了解决方案。我会发布一个新的答案,因为还有很多内容需要提及。

Elastic Beanstalk API 命令aws elasticbeanstalk describe-environments --region <your-region> --environment-id <your-environment-id>为您提供了大量有用的信息。或者省略--environment-id描述所有环境。要具体获取 URL,我们可以执行以下操作:

aws elasticbeanstalk describe-environments --region us-east-2 --environment-id e-sfmsdjhtwn --query "Environments[0].CNAME"

,为了使其正常工作,我们需要向与 EC2 实例关联的 IAM 角色授予额外权限。因此,转到 IAM > 角色 > aws-elasticbeanstalk-ec2-role > 添加内联策略。选择以下内容:Service=Eleastic Beanstalk、Actions=DescribeEnvironments、Resources=All resources。完成创建策略。

并且,这要求我们知道当前实例所在的环境 ID。但我们甚至可以通过编程找到它/etc/elasticbeanstalk/.aws-eb-stack.properties(需要 root 访问权限)。

因此,.ebextensions我们现在可以在部署脚本中对此采取行动。

相关内容