簡體   English   中英

AWS ECS 環境變量不可用 [Python]

[英]AWS ECS environment variable not available [Python]

我將 AWS ECS 與 Python 框架一起使用,在我的任務定義中,我可以選擇添加可用於服務(集群)的環境變量。

這是我添加環境變量的地方: 在此處輸入圖像描述

然后,當我嘗試在我的服務中打印所有 env 變量時,我無法訪問這些變量,我也不確定為什么。 在這里,我使用 environ 打印了我所有的環境:

for a in os.environ:
    print('Var: ', a, 'Value: ', os.getenv(a))
print("all done")

結果: 在此處輸入圖像描述

DB_PORTAPP_KEY在我的服務或 python 代碼中不可用。

我有一個類似的問題,在我看來,整個環境只傳遞給 PID 1(init 進程,在容器中應該是 CMD/ENTRYPOINT 命令)。 Cron 不是那個進程,所以你不能假設它看到相同的環境。

我所做的可能不是最好的解決方案,而是一種 hack,但它確實有效。

進程的環境在/proc/<pid>/environ中可用,因此在本例中為/proc/1/environ 我從那里抓取它並將其存儲在一個文件中以備將來使用:

for I in `cat /proc/1/environ  | strings`; do echo "export $I"; done > /src/.profile

然后我只是在我的腳本中source /src/.profile (在你的情況下是 cron 作業)。

如果您需要 AWS 憑證,您可能還需要訪問ECS_CONTAINER_METADATA_URI_V4環境變量,並且該變量也將在那里。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM