Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google compute engine 使用环境变量的Google部署管理器模板_Google Compute Engine - Fatal编程技术网

Google compute engine 使用环境变量的Google部署管理器模板

Google compute engine 使用环境变量的Google部署管理器模板,google-compute-engine,Google Compute Engine,我有一个名为dev.yaml的模板,如下所示: imports: - path: generate_config.py resources: - name: application_vm type: generate_config.py properties: zone: europe-west1-d project: cpb1234567 #!/usr/bin/env python COMPUTE_URL_BASE = 'https://www.googleapi

我有一个名为dev.yaml的模板,如下所示:

imports:
- path: generate_config.py

resources:
- name: application_vm
  type: generate_config.py
  properties:
    zone: europe-west1-d
    project: cpb1234567
#!/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}
请注意,我正在硬编码区域和项目。我希望它们来自这些环境变量

CLOUDSDK_COMPUTE_ZONE=europe-west1-d
GCP_PROJ_ID=cpb1234567
generate_config.py如下所示:

imports:
- path: generate_config.py

resources:
- name: application_vm
  type: generate_config.py
  properties:
    zone: europe-west1-d
    project: cpb1234567
#!/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}
我正在从属性中获取区域和项目,这样就可以了

但是,如何从环境变量中获取区域和项目

在Python模板中,我似乎无法做到这一点:

import os
...
os.environ['GCP_PROJ_ID']
因为导入失败

在YAML中,不清楚什么语法可以工作

非常感谢


Nathan

虽然没有答案,但更多信息如下:


谢谢您-他们可以将环境变量称为“deployment manager环境变量”或类似的名称。。?当GCP的其他部分允许您设置和检索环境变量时,您会感到非常困惑。在Python模板中使用“os”库也是不可能的,因此编程仅限于环境变量。