이 문서에서는 Cloud Deploy에서 작업을 구성하는 방법을 설명합니다. 태스크는 배포 후크, 배포 확인, 배포 분석 또는 맞춤 대상 유형의 맞춤 렌더링이나 맞춤 배포에 사용할 수 있는 작업 단위입니다.
배포 파이프라인 (전략의 일부) 또는 맞춤 대상 유형 렌더링 또는 배포에서 작업을 구성할 수 있습니다.
작업을 사용하면 작업 구성에 템플릿을 적용하여 시스템 매개변수를 사용할 수 있습니다.
태스크 정의
배포 파이프라인 구성에서 또는 맞춤 대상 유형 정의의 일부로 작업을 정의할 수 있습니다. 다음 YAML은 두 경우 모두에 사용되는 task 스탠자를 보여줍니다.
task:
type: container
image: IMAGE
command: [COMMANDS_TO_RUN]
args: [LIST_OF_ARGS]
env:
- KEY1:VAL1
- KEY2:VAL2
...
task 구성의 경우:
type구성되는 작업의 종류를 지정합니다.
container만 지원됩니다.image컨테이너 이미지에 대한 경로입니다.
command컨테이너에서 실행할 명령어입니다.
argscommand에 대한 인수 컬렉션입니다.env실행 중인 컨테이너에 제공할 환경 변수의 모음입니다.
시스템 매개변수를 작업 환경 변수로 사용
Cloud Deploy는 container 작업의 env 필드를 사용하여 작업에서 환경 변수로 사용할 수 있는 시스템 생성 매개변수를 제공합니다. 템플릿 매개변수는 env 맵 항목의 키 또는 값 필드에 있을 수 있습니다.
다음은 몇 가지 사용 사례입니다.
Cloud Run 서비스 이름, 서비스 URL, 버전 이름을 환경 변수로 전달합니다.
task: type: container image: my-image command: ["/bin/bash"] env: - RUN_SERVICE_NAME : "${{ render.metadata.cloud_run.service.name }}" - RUN_SERVICE_URL: "${{ rollout.metadata.cloud_run.service_url }}" - RUN_REVISION_NAME: "${{ render.metadata.cloud_run.revision.name }}"단일 항목에서 여러 매개변수 사용
task: type: container image: my-image command: ["/bin/bash"] env: - DEPLOY_PARAMS_KEY : "${{ deploy_params['FOO'] }}-with-${{ deploy_params['BAR'] }}" - "${{ project.id }}_${{ location }}" : "${{ target.id }}"
사용 가능한 시스템 매개변수
Cloud Deploy는 다음 형식으로 작업 구성에서 사용할 수 있는 시스템 매개변수를 제공합니다.
${{ parameter }}
$${{ }}개
템플릿에 사용할 수 있는 매개변수 목록은 다음과 같습니다.
| 이름 | 정의 |
|---|---|
location |
Cloud Deploy 리소스가 포함된 리전입니다. 출시 버전 생성 시 사용 가능합니다. |
project.num |
Cloud Deploy 리소스가 포함된 프로젝트의 Google Cloud 프로젝트 번호입니다. 출시 버전 생성 시 사용 가능합니다. |
project.id |
프로젝트의 Google Cloud 프로젝트 ID입니다. 출시 버전 생성 시 사용 가능합니다. |
delivery_pipeline.name |
배포 파이프라인의 전체 리소스 이름입니다. 출시 버전 생성 시 사용 가능합니다. |
delivery_pipeline.id |
배포 파이프라인의 ID입니다. 출시 버전 생성 시 사용 가능합니다. |
target.name |
타겟의 완전하게 지정된 리소스 이름입니다. 출시 버전 생성 시 사용 가능합니다. |
target.id |
타겟의 ID입니다. 출시 버전 생성 시 사용 가능합니다. |
release.name |
버전의 완전히 지정된 리소스 이름입니다. 출시 버전 생성 시 사용 가능합니다. |
release.id |
버전의 ID입니다. 출시 버전 생성 시 사용 가능합니다. |
rollout.name |
출시의 정규화된 리소스 이름입니다. 출시 생성 시 사용할 수 있습니다. |
rollout.id |
출시의 ID입니다. 출시 생성 시 사용할 수 있습니다. |
job.id |
실행 중인 작업의 ID입니다. 출시 생성 시 사용할 수 있습니다. |
phase.id |
작업 작업을 포함하는 출시의 단계입니다. 출시 생성 시 사용할 수 있습니다. |
job_run.name |
작업의 현재 실행을 나타내는 작업 실행의 완전히 지정된 리소스 이름입니다. 출시 생성 시 사용할 수 있습니다. |
job_run.id |
작업의 현재 실행을 나타내는 작업 실행의 ID입니다. 출시 생성 시 사용할 수 있습니다. |
deploy_params |
타겟과 연결된 배포 매개변수의 맵입니다. 예: deploy_params['KEY']
존재하지 않는 키에 액세스하려고 하면 빈 문자열이 반환됩니다. 출시 버전 생성 시 사용 가능합니다. |
RUN 유형의 타겟의 경우: |
|
cloud_run.project |
Cloud Run 서비스가 생성된 프로젝트입니다. 출시 버전 생성 시 사용 가능합니다. |
cloud_run.location |
Cloud Run 서비스가 배포된 리전입니다. 출시 버전 생성 시 사용 가능합니다. |
render.metadata.cloud_run.service.name |
배포된 Cloud Run 서비스의 이름입니다. 렌더링 작업이 완료된 후에 사용할 수 있습니다. |
render.metadata.cloud_run.service.id |
배포된 Cloud Run 서비스의 ID입니다. 렌더링 작업이 완료된 후에 사용할 수 있습니다. |
rollout.metadata.cloud_run.service.url |
최종 사용자가 서비스에 액세스하는 데 사용할 URL입니다. Google Cloud 콘솔의 해당 서비스에 대한 Cloud Run 서비스 세부정보에서 이를 확인할 수 있습니다. 배포 작업이 완료된 후에 사용할 수 있습니다. |
render.metadata.cloud_run.revision.name |
배포되는 Cloud Run 서비스 버전의 전체 이름입니다. 렌더링 작업이 완료된 후에 사용할 수 있습니다. |
render.metadata.cloud_run.revision.id |
배포되는 Cloud Run 서비스의 버전 ID입니다. 렌더링 작업이 완료된 후에 사용할 수 있습니다. |
rollout.metadata.cloud_run.previous_revision.name |
배포되는 Cloud Run 서비스의 이전 버전의 전체 이름입니다. 배포 작업이 완료된 후에 사용할 수 있습니다. |
rollout.metadata.cloud_run.previous_revision.id |
배포되는 Cloud Run 서비스의 이전 버전 ID입니다. 배포 작업이 완료된 후에 사용할 수 있습니다. |
GKE 유형의 타겟의 경우: |
|
gke.cluster.name |
GKE 클러스터의 완전히 지정된 리소스 이름입니다. 출시 버전 생성 시 사용 가능합니다. |
gke.cluster.id |
GKE 클러스터의 ID입니다. 출시 버전 생성 시 사용 가능합니다. |
gke.cluster.project |
GKE 클러스터의 프로젝트 ID/번호입니다. 출시 버전 생성 시 사용 가능합니다. |
gke.cluster.location |
GKE 클러스터의 위치입니다. 출시 버전 생성 시 사용 가능합니다. |
ANTHOS 유형의 타겟의 경우: |
|
anthos.membership.project |
GKE Enterprise 클러스터의 프로젝트 ID/번호입니다. 출시 버전 생성 시 사용 가능합니다. |
anthos.membership.location |
GKE Enterprise 클러스터의 위치입니다. 출시 버전 생성 시 사용 가능합니다. |
anthos.membership.name |
GKE Enterprise 멤버십의 완전하게 지정된 리소스 이름입니다. 출시 버전 생성 시 사용 가능합니다. |
anthos.membership.id |
GKE Enterprise 멤버십의 ID입니다. 출시 버전 생성 시 사용 가능합니다. |
Kubernetes 타겟 (GKE 및 ANTHOS 유형의 타겟)의 경우: |
|
render.metadata.kubernetes.deployment |
업데이트되는 배포의 이름입니다. 매니페스트에 배포가 두 개 이상 있는 경우 설정되지 않습니다. 렌더링 작업이 완료된 후에 사용할 수 있습니다. |
render.metadata.kubernetes.canary_deployment |
자동 카나리아의 카나리아 배포 이름입니다. 안정화 단계에서는 안정화 단계에 카나리아가 없으므로 render.metadata.kubernetes.deployment와 동일합니다. 다른 단계의 경우 이는 끝에 -canary이 있는 render.metadata.kubernetes.deployment과 동일합니다.렌더링 작업이 완료된 후에 사용할 수 있습니다. |
render.metadata.kubernetes.namespace |
배포되는 리소스의 네임스페이스입니다. 매니페스트에 네임스페이스가 두 개 이상 있으면 설정되지 않습니다. 렌더링 작업이 완료된 후에 사용할 수 있습니다. |
CUSTOM_TARGET_TYPE 유형의 타겟의 경우: |
|
render.metadata.custom |
맞춤 렌더링의 렌더링 메타데이터 맵입니다. 예: render.metadata.custom['KEY']존재하지 않는 키에 액세스하려고 하면 빈 문자열이 반환됩니다. 렌더링 작업이 완료된 후에 사용할 수 있습니다. |
rollout.metadata.custom |
맞춤 배포의 출시 메타데이터 맵입니다. 예: rollout.metadata.custom['KEY']존재하지 않는 키에 액세스하려고 하면 빈 문자열이 반환됩니다. 배포 작업이 완료된 후에 사용할 수 있습니다. |
사용 가능한 환경 변수
Cloud Deploy는 실행 환경에 다음 환경 변수도 제공하고 채웁니다. 이러한 환경 변수를 배포 후크, 작업 확인 또는 커스텀 타겟 렌더링 또는 배포의 일부로 사용할 수 있습니다.
ANTHOS_MEMBERSHIPANTHOS유형 대상의 경우 Anthos 멤버십의 완전하게 지정된 리소스 이름입니다.CLOUD_RUN_LOCATIONRUN유형 대상의 경우 Cloud Run 서비스가 배포된 리전입니다.CLOUD_RUN_PROJECTRUN유형 대상의 경우 Cloud Run 서비스가 생성된 프로젝트입니다.CLOUD_RUN_SERVICERUN유형 대상의 경우 배포된 Cloud Run 서비스의 이름입니다.CLOUD_RUN_SERVICE_URLSRUN유형 대상의 경우 최종 사용자가 서비스에 액세스하는 데 사용할 URL 또는 쉼표로 구분된 URL 목록입니다.Google Cloud 콘솔의 해당 서비스에 대한 Cloud Run 서비스 세부정보에서 이를 확인할 수 있습니다. URL은 Cloud Run 서비스가 성공적으로 배포된 후 Cloud Run에 의해 생성됩니다. 따라서 이 환경 변수는 postdeploy 후크와 작업 확인에서만 사용할 수 있습니다.CLOUD_RUN_REVISIONRUN유형 대상의 경우 Cloud Run 서비스의 특정 버전입니다.GKE_CLUSTERGKE유형의 대상의 경우 Google Kubernetes Engine 클러스터의 완전히 지정된 리소스 이름입니다(예:projects/p/locations/us-central1/clusters/dev).TARGET_TYPE대상의 특정 런타임 유형으로,
GKE,ANTHOS,RUN입니다. 커스텀 대상의 경우 이 값이 설정되지 않습니다.CLOUD_DEPLOY_LOCATIONCloud Deploy 리소스가 포함된 리전입니다.
CLOUD_DEPLOY_DELIVERY_PIPELINE배포 파이프라인의 ID입니다.
CLOUD_DEPLOY_TARGET타겟의 ID입니다.
CLOUD_DEPLOY_PROJECTCloud Deploy 리소스가 포함된 프로젝트의 Google Cloud 프로젝트 번호입니다.
CLOUD_DEPLOY_PROJECT_ID프로젝트의 Google Cloud 프로젝트 ID입니다.
CLOUD_DEPLOY_RELEASE후크가 실행되는 출시 버전의 ID입니다.
CLOUD_DEPLOY_ROLLOUT후크 작업을 포함하는 출시의 ID입니다.
CLOUD_DEPLOY_JOB_RUN작업의 현재 실행을 나타내는 작업 실행의 ID입니다.
CLOUD_DEPLOY_PHASE배포 후크, 확인 작업 또는 맞춤 렌더링 또는 배포 작업을 포함하는 출시의 단계입니다.