[英]How to check whether my code runs in a container on AWS EC2 or not
我的(python)代碼在 docker 容器內運行。
該容器部署在 AWS EC2 上用於我們的生產和測試目的,但有時部署在我們的本地機器或其他雲供應商上用於開發和 CICD 目的。
對於某些功能,我希望我的 python 代碼能夠區分 EC2 部署和非 EC2。 這可能嗎?
我找到了這個使用EC2 實例元數據端點的答案,但我想知道:
a) 這也可以在 docker 容器中工作嗎?
b) 沒有更優雅的解決方案嗎? 發出 HTTP 請求並等待它似乎有點太多了。
(我知道一個簡單的解決方案可能是添加一些專有的環境變量或標志,試圖找到一個更本地的來檢查這個)
我建議您使用自定義環境變量 go。 通過這種方式,您將能夠輕松地在 AWS 之外(在您的工作站上或使用其他雲提供商)重現所需的行為。
使用curl
或檢查/etc/cloud
的存在會使您的應用程序行為依賴於第三方服務/工具。 除了邏輯復雜性(您必須處理可能的curl
錯誤,例如無效的響應代碼),這可能會導致您肯定不想遇到的錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.