从 Elastic Beanstalk 导出所有环境属性

问题描述 投票:0回答:3

我已在 AWS Elastic beanstalk 中设置环境属性。我有一个托管在 Linux 上的 NodeJS 应用程序。

我可以通过在 ebextensions 的配置中使用 container_commands 来读取环境属性。

但是还有其他方法来读取这些值吗?您可以导出 json 或所有值的某些内容,而不将它们读取为 ebextensions 中的环境变量吗?

amazon-web-services amazon-elastic-beanstalk
3个回答
9
投票

您可以在 Beanstalk EC2 实例上使用

get-command
获取环境变量:

sudo /opt/elasticbeanstalk/bin/get-config environment --output json

0
投票
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/


0
投票

为了以防万一其他人在这么长时间后遇到这个问题,我实际上向 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"

这是我从 AWS 支持获得的内容:

所有可用的 Elastic Beanstalk (EB) API 操作均可在 [1] 中找到。

DescribeConfigurationSettings [2] 操作将返回指定配置集的设置描述,即配置模板或与运行环境关联的配置集。 API 操作页面的“另请参阅”部分提供了该操作的相关 SDK 和 CLI 文档。

eb config
[3]“EB CLI”[4] 命令也可用于描述环境配置以及更新环境。

“UpdateEnvironment”[5] API 操作可用于更新环境属性。

CloudTrail 事件历史记录 [6] 可用于查看在更新环境等情况时执行了哪些操作。 CloudTrail 事件在执行操作后需要几分钟才能显示事件。

保存的配置[7]可用于将一组特定的配置应用于其他环境,以确保一致性。

总结一下:

  • 所有 EB API 操作均可在 [1] 中找到。
  • 要查看环境配置,请参阅DescribeConfigurationSettings [2] 或
    eb config
    [3]。
  • 要更新环境,请参阅“更新环境”[5] 或
    eb config
    [3]。
  • CloudTrail 事件历史记录 [6] 显示特定账户在特定区域执行了哪些 API 操作。
  • 保存的配置[7]可以应用于特定应用程序下的其他环境,以确保配置一致性。

我希望您发现上述信息内容丰富,如有进一步问题,请随时与我们联系!

祝你有美好的一天。

参考资料: [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

[5] - 更新环境 https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_UpdateEnvironment.html#API_UpdateEnvironment_SeeAlso

[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 支持中心对本信件和其他信件进行评分来分享您的经验。您可以通过选择信件右上角的星星来对信件进行评分。

© www.soinside.com 2019 - 2024. All rights reserved.