use*_*693 3 python environment-variables google-cloud-platform google-cloud-functions
我试图了解如何正确使用Google Cloud Functions的环境变量。
我已经部署了一个函数,我想写入和读取它的环境变量(例如XXX:)。
if not os.environ.get("XXX"):
print("XXX_SET_DEFAULT")
os.environ.setdefault("XXX","1")
else:
print("XXX_SET")
os.environ["XXX"] = "1"
print("XXX_GET", os.environ["XXX"])
Run Code Online (Sandbox Code Playgroud)
触发该函数后,运行时环境变量列表中最初设置的值不会改变。
虽然行为有点不同,因为当我使用具有虚拟值的函数部署变量时,我可以XXX_SET在日志中看到字符串,但是当我不首先部署变量时,第一次运行我可以看到XXX_SET_DEFAULT,然后是第二次运行有XXX_SET。
我已经使用(也从用户界面)设置了变量:
gcloud functions deploy my_func \
...
--set-env-vars XXX=xxx
Run Code Online (Sandbox Code Playgroud)
问题:
XXX_SET_DEFAULT, XXX_SET与XXX_SET, XXX_SET)Runtime environment variables和 和有什么区别Build environment variables?
Build environment variables?您不应该更改 GCF 中的环境变量。他们在那里设置配置。
以下是一些基础知识:
Build environment variables用于容器构建时。除非你搞乱了你的构建方式,否则你将不需要这些。Runtime environment variables用于函数在容器中运行时的情况。您可以使用代码访问这些内容。这意味着,每次运行一个函数时,它都会获得一个新容器,所有变量都设置为您在配置中设置的值。
现在,GCF 有可能在后台重用某些容器,您可能会看到一些持久性,但不能依赖于此。
综上所述: