[英]How to check whether a folder exists or not in gcp cloud storage out of 1 million folders
[英]Check whether deployed in cloud
我有一個 python 程序在 Docker 容器中運行。 我的身份驗證方法取決於容器是否部署在 GCP 中。 理想情況下,我會有這樣的 function:
def deployment_environment():
# return 'local' if [some test] else 'cloud'
pass
檢查這個最慣用的方法是什么? 我的直覺是使用名為[APP_NAME]_DEPLOYMENT_ENVIRONMENT
的環境,它可以通過任何一種方式設置——但要確保設置正確有太多活動部件。 有沒有可以幫我檢查的 GCP 包/工具?
我有兩種解決方案:
部署時設置環境變量,如下所示:
gcloud functions deploy [function-name] --set-env-vars ENV_GCP=1
然后,在您的代碼中:
import socket
def deployment_environment():
return 'cloud' if ('ENV_GCP' in os.environ) else 'local'
優點 | 缺點 |
---|---|
意圖很明確,設置和使用 env | 更多地參與 |
地道的 | 依賴於用戶正確設置 env |
import socket
def deployment_environment():
try:
socket.getaddrinfo('metadata.google.internal', 80)
return 'cloud'
except socket.gaierror:
return 'local'
優點 | 缺點 |
---|---|
更簡潔 | 不正確地使用try/catch |
不依賴於設置環境的額外步驟 | 對套接字 package 和 GCP 運行時合約的依賴 |
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.