【问题标题】:How to check whether my code runs in a container on AWS EC2 or not如何检查我的代码是否在 AWS EC2 上的容器中运行
【发布时间】:2021-01-27 18:37:15
【问题描述】:

我的 (python) 代码在 docker 容器中运行。

容器部署在 AWS EC2 上用于我们的生产和测试目的,但有时部署在我们的本地机器或其他云供应商上用于开发和 CICD 目的。

对于某些功能,我希望我的 python 代码能够区分 EC2 部署和非 EC2。这可能吗?

我发现this answer 使用EC2 instance metadata endpoint,但我想知道:

a) 这也可以在 docker 容器中工作吗?

b) 没有更优雅的解决方案吗?发出 HTTP 请求并等待它似乎有点太多了。

(我知道一个简单的解决方案可能是添加一些专有的环境变量或标志,试图找到一个更原生的来检查这个)

【问题讨论】:

    标签: amazon-web-services amazon-ec2


    【解决方案1】:

    我建议您使用自定义环境变量。通过这种方式,您将能够轻松地在 AWS 之外(在您的工作站上或使用其他云提供商)重现所需的行为。

    使用curl 或检查/etc/cloud 的存在会使您的应用程序行为依赖于第三方服务/工具。除了逻辑复杂性(您必须处理可能的 curl 错误,例如无效的响应代码)之外,这可能会导致您肯定不想遇到的错误。

    【讨论】:

    • 完全同意,如果这家伙没有打败我,我会写同样的东西
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-24
    • 2017-10-26
    • 1970-01-01
    • 2012-11-05
    • 1970-01-01
    • 2020-09-07
    相关资源
    最近更新 更多