Deployment Manager는 각 배포에서 추론된 정보가 포함된 사전 정의된 환경 변수를 만듭니다. 이러한 환경 변수를 Python 또는 Jinja2 템플릿에서 사용하면 프로젝트 또는 배포에 대한 정보를 가져올 수 있습니다.
시작하기 전에
- 이 가이드의 명령줄 예시를 사용하려면 'gcloud' 명령줄 도구를 설치합니다.
- 이 가이드의 API 예시를 사용하려면 API 액세스를 설정합니다.
- 기본 템플릿을 만드는 방법을 이해합니다.
- 구성을 만드는 방법을 이해합니다.
사용 가능한 환경 변수
다음 환경 변수는 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}
다음 단계
- 프로젝트에 템플릿을 복합 유형으로 영구적으로 추가합니다.
- 다른 사람과 공유하기 위해 템플릿을 외부적으로 호스팅합니다.
- 사용자가 템플릿을 올바르게 사용하도록 스키마를 추가합니다.