태스크 구성

이 문서에서는 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

    컨테이너에서 실행할 명령어입니다.

  • args

    command에 대한 인수 컬렉션입니다.

  • 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 타겟 (GKEANTHOS 유형의 타겟)의 경우:
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_MEMBERSHIP

    ANTHOS 유형 대상의 경우 Anthos 멤버십의 완전하게 지정된 리소스 이름입니다.

  • CLOUD_RUN_LOCATION

    RUN 유형 대상의 경우 Cloud Run 서비스가 배포된 리전입니다.

  • CLOUD_RUN_PROJECT

    RUN 유형 대상의 경우 Cloud Run 서비스가 생성된 프로젝트입니다.

  • CLOUD_RUN_SERVICE

    RUN 유형 대상의 경우 배포된 Cloud Run 서비스의 이름입니다.

  • CLOUD_RUN_SERVICE_URLS

    RUN 유형 대상의 경우 최종 사용자가 서비스에 액세스하는 데 사용할 URL 또는 쉼표로 구분된 URL 목록입니다.Google Cloud 콘솔의 해당 서비스에 대한 Cloud Run 서비스 세부정보에서 이를 확인할 수 있습니다. URL은 Cloud Run 서비스가 성공적으로 배포된 후 Cloud Run에 의해 생성됩니다. 따라서 이 환경 변수는 postdeploy 후크와 작업 확인에서만 사용할 수 있습니다.

  • CLOUD_RUN_REVISION

    RUN 유형 대상의 경우 Cloud Run 서비스의 특정 버전입니다.

  • GKE_CLUSTER

    GKE 유형의 대상의 경우 Google Kubernetes Engine 클러스터의 완전히 지정된 리소스 이름입니다(예: projects/p/locations/us-central1/clusters/dev).

  • TARGET_TYPE

    대상의 특정 런타임 유형으로, GKE, ANTHOS, RUN입니다. 커스텀 대상의 경우 이 값이 설정되지 않습니다.

  • CLOUD_DEPLOY_LOCATION

    Cloud Deploy 리소스가 포함된 리전입니다.

  • CLOUD_DEPLOY_DELIVERY_PIPELINE

    배포 파이프라인의 ID입니다.

  • CLOUD_DEPLOY_TARGET

    타겟의 ID입니다.

  • CLOUD_DEPLOY_PROJECT

    Cloud 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

    배포 후크, 확인 작업 또는 맞춤 렌더링 또는 배포 작업을 포함하는 출시의 단계입니다.

다음 단계