如果我使用的是Jinja模板,则可以这样通过命令行覆盖属性:
--properties zone:us-central1-a,machineType:n1-standard-1,image:debian-9
但是我看不到任何文档或示例来使用诸如标签或环境变量之类的嵌套属性来做到这一点:
resources:
- name: resource-name
type: 'gcp-types/cloudfunctions-v1:projects.locations.functions'
properties:
labels:
testlabel1: testlabel1value
testlabel2: testlabel2value
environmentVariables:
TEST: 'zzzzzzzzz'
如何设置这些属性?这不起作用:--properties labels:testlabel1:newvalue
答案 0 :(得分:1)
这里的简短答案是--properties
标志并不意味着将属性值传递给模板。如果没有配置文件,模板将无法运行,-properties标志用于替换配置文件。您传递的每个参数都与在配置文件中列出它们相同。
基本上使用--template my-template.py --properties zone:us-central1-f
等效于运行--config myConfig.yaml
,其中YAML的定义如下:
imports: - path: my-template.py resources: - name: some-resource type: my-temaplte.py properties: zone: us-central1-f
--properties
标志不是要传递原始数据来替换非变量。
尽管这不能直接回答您的问题,但通常不需要在标志中定义嵌套值。您的模板通常会调用从对象properties
中获取的直接变量。
尽管如此,我确实做了一些测试,据我所知,你不能这样做。
答案 1 :(得分:0)
经过反复试验,我设法通过命令行传递了一个对象,如下所示:
--properties ^~^labels:{'testlabel1: testlabel1value','testlabel2: testlabel2value'}~environmentVariables:{'TEST: zzzzzzzzz'}