我有一个名为dev.yaml的模板,如下所示:
24.64.208.134 : 24128 : 3
71.228.199.109 : 37091 : 1
72.197.8.56 : 9258 : 1
75.117.31.43 : 3122 : 1
99.248.20.48 : 48725 : 1
207.68.178.56 : 80 : 1
请注意,我正在对区域和项目进行硬编码。我希望那些来自这些环境变量。
imports:
- path: generate_config.py
resources:
- name: application_vm
type: generate_config.py
properties:
zone: europe-west1-d
project: cpb1234567
generate_config.py如下所示:
CLOUDSDK_COMPUTE_ZONE=europe-west1-d
GCP_PROJ_ID=cpb1234567
我从属性中获取区域和项目,因此可行。
但是,如何从环境变量中获取区域和项目?
我似乎无法在Python模板中执行此操作:
#!/usr/bin/env python
COMPUTE_URL_BASE = 'https://www.googleapis.com/compute/v1/'
def generate_config(context):
resources = [{
'name': context.env['name'],
'type': 'compute.v1.instance',
'properties': {
'zone': context.properties['zone'],
'machineType': ''.join([COMPUTE_URL_BASE,
'projects/',
context.properties['project'],
'/zones/',
context.properties['zone'],
'/machineTypes/n1-standard-1']),
'disks': [{
'deviceName': 'boot',
'type': 'PERSISTENT',
'boot': True,
'autoDelete': True,
'initializeParams': {
'sourceImage': ''.join([COMPUTE_URL_BASE,
'projects/',
context.properties['project'],
'/global/images/jre-10gb-debian-jessie'])
}
}],
'networkInterfaces': [{
'network': ''.join([COMPUTE_URL_BASE,
'projects/',
context.properties['project'],
'/global/networks/default']),
'accessConfigs': [{
'name': 'External NAT',
'type': 'ONE_TO_ONE_NAT'
}]
}]
}
}]
return {'resources': resources}
导入失败。
在YAML中,尚不清楚哪种语法可行。
非常感谢
森
答案 0 :(得分:0)
虽然不是这样的答案,但更多信息在这里:
https://groups.google.com/forum/#!topic/gce-discussion/Md7rCo1ZMJY