배포 관련 환경 변수 사용

Deployment Manager는 각 배포에서 추론된 정보가 포함된 사전 정의된 환경 변수를 만듭니다. 이러한 환경 변수를 Python 또는 Jinja2 템플릿에서 사용하면 프로젝트 또는 배포에 대한 정보를 가져올 수 있습니다.

시작하기 전에

사용 가능한 환경 변수

다음 환경 변수는 Deployment Manager에서 자동으로 설정됩니다. 환경 변수는 템플릿에서 사용하는 모든 위치에서 바뀝니다. 예를 들어 project_number 변수를 사용하면 프로젝트 번호를 서비스 계정 이름에 추가할 수 있습니다.

환경 변수
deployment 배포 이름입니다.
name 템플릿을 사용하는 구성에서 선언된 name입니다. 이 변수는 구성에서 선언된 이름을 기본 템플릿의 리소스 이름으로 지정하려는 경우에 유용할 수 있습니다.
project 이 배포의 프로젝트 ID입니다.
project_number 이 배포의 프로젝트 번호입니다.
current_time 배포에 대해 확장이 시작된 UTC 타임스탬프입니다.
type 최상위 구성에 선언된 리소스 유형입니다.
username Deployment Manager의 현재 사용자입니다.

환경 변수 사용

다음 구문을 사용하여 환경 변수를 템플릿에 추가합니다.

{{ env["deployment"] }} # Jinja

context.env["deployment"] # Python

템플릿에서 다음 예제와 같이 변수를 사용합니다.

Jinja

- type: compute.v1.instance
  name: vm-{{ env["deployment"] }}
  properties:
    machineType: zones/us-central1-a/machineTypes/f1-micro
    serviceAccounts:
    - email: {{ env['project_number'] }}-compute@developer.gserviceaccount.com
      scopes:
      - ...

Python

def GenerateConfig(context):
  resources = []
  resources.append ({
    'name': 'vm-' + context.env["deployment"],
    'type': 'compute.v1.instance',
    'properties': {
       'serviceAccounts': [{
         'email': context.env['project_number'] + '-compute@developer.gserviceaccount.com',
         'scopes': [...]
       }]
    }
    ...}]
  return {'resources': resources}

다음 단계