【问题标题】:Is it possible to pass an environment variable to VM Instance start up script using Python?是否可以使用 Python 将环境变量传递给 VM 实例启动脚本?
【发布时间】:2021-11-10 10:50:20
【问题描述】:

我在云函数中使用 Python 在函数被触发时打开 VM 实例。

     request = service.instances().start(project=project, zone=zone, instance=instance)
     response = request.execute()

VM 实例在启动时会依次运行启动脚本。

但是,是否可以在上述 Python 命令中将环境变量传递给启动脚本。如果是这样,我该怎么做?

我计划在我的实例中设置一个条件启动脚本,该脚本执行以下操作:

如果环境变量是'x':

run python script x.py

其他:

run python script y.py

等等……

谢谢

【问题讨论】:

  • 您是否考虑过虚拟机上的自定义属性而不是环境变量? (或者,如果您愿意,也可以创建一个读取自定义属性并将值放入 env var 的脚本)。 cloud.google.com/compute/docs/metadata/…

标签: python google-cloud-platform google-compute-engine


【解决方案1】:

恐怕您无法直接设置环境变量,但您可以为您的虚拟机设置元数据参数。你可以这样做:

  1. 在打开虚拟机之前修改它的元数据集。 Here's how.
  2. 启动虚拟机。
  3. 在您的启动脚本中,查询元数据服务器以检索您在步骤 1 中配置的值。How to retrieve metadata values?
  4. 将检索到的值视为环境变量。

我希望这可以帮助您实现目标:)

编辑:Guest attributes 在评论中建议
guillaume blaquiere 的工作方式相同,它们只是实例元数据的一部分。

【讨论】:

    猜你喜欢
    • 2023-02-08
    • 1970-01-01
    • 2014-09-15
    • 2018-09-29
    • 2012-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多