我已在 AWS Elastic beanstalk 中设置环境属性。我有一个托管在 Linux 上的 NodeJS 应用程序。
我可以通过在 ebextensions 的配置中使用 container_commands 来读取环境属性。
但是还有其他方法来读取这些值吗?您可以导出 json 或所有值的某些内容,而不将它们读取为 ebextensions 中的环境变量吗?
您可以在 Beanstalk EC2 实例上使用
get-command
获取环境变量:
sudo /opt/elasticbeanstalk/bin/get-config environment --output json
commands:
setvars:
command: /opt/elasticbeanstalk/bin/get-config environment | jq -r 'to_entries | .[] | "export \(.key)=\"\(.value)\""' > /etc/profile.d/sh.local
packages:
yum:
jq: []
https://aws.amazon.com/premiumsupport/knowledge-center/elastic-beanstalk-env-variables-shell/
为了以防万一其他人在这么长时间后遇到这个问题,我实际上向 AWS 提交了支持请求并得到了合理的答案,我将其包含在下面。 对我来说最重要的是,事实证明 EB 有两种完全不同的 AWS CLI(!)。 有这个:
https://awscli.amazonaws.com/v2/documentation/api/latest/reference/index.html#available-services
这是我经常去的一个,甚至在他们的 SDK 中寻找东西,但它完全无法返回环境属性,而这个,它与普通的 AWS CLI 发行版完全分开:
https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3.html
直到现在我才知道它的存在,而且它可以做我想要的事情。
因为我总是使用 CLI 作为查找 SDK 功能的指南(文档通常都很糟糕),并且因为我查看了以前的 CLI,所以我没有发现(至少对于最近的版本)不同语言的 SDK也可以做这个事情:
https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_Operations.html
我已经验证至少 PHP SDK 可以使用读取环境的属性 AWS\ElasticBeanstalk\ElasticBeanstalkClient::ConfigurationSettings 它返回的结果比您想要的要多,但是您可以过滤测试结果 命名空间 == "aws:elasticbeanstalk:application:environment"
所有可用的 Elastic Beanstalk (EB) API 操作均可在 [1] 中找到。
DescribeConfigurationSettings [2] 操作将返回指定配置集的设置描述,即配置模板或与运行环境关联的配置集。 API 操作页面的“另请参阅”部分提供了该操作的相关 SDK 和 CLI 文档。
eb config
[3]“EB CLI”[4] 命令也可用于描述环境配置以及更新环境。
“UpdateEnvironment”[5] API 操作可用于更新环境属性。
CloudTrail 事件历史记录 [6] 可用于查看在更新环境等情况时执行了哪些操作。 CloudTrail 事件在执行操作后需要几分钟才能显示事件。
保存的配置[7]可用于将一组特定的配置应用于其他环境,以确保一致性。
总结一下:
eb config
[3]。eb config
[3]。我希望您发现上述信息内容丰富,如有进一步问题,请随时与我们联系!
祝你有美好的一天。
参考资料: [1] - AWS Elastic Beanstalk 操作 https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_Operations.html
[2] - 描述配置设置 https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_DescribeConfigurationSettings.html
[3] - eb 配置 https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb3-config.html
[4] - 使用 Elastic Beanstalk 命令行界面 (EB CLI) https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3.html
[6] - 使用控制台查看最近的管理事件 https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events-console.html
[7] - 使用 Elastic Beanstalk 保存的配置 https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environment-configuration-savedconfig.html
我们重视您的反馈。请通过在 AWS 支持中心对本信件和其他信件进行评分来分享您的经验。您可以通过选择信件右上角的星星来对信件进行评分。