맞춤 분석 정의

Cloud Deploy는 Google Cloud Observability의 측정항목과 기타 데이터를 기반으로 Google Cloud Observability에서 생성한 알림을 사용하는 분석 작업을 지원합니다. 하지만 Cloud Deploy를 확장하여 다른 측정항목 제공업체를 사용할 수도 있습니다. 이 문서에서는 분석 작업을 구성하고 사용하는 방법과 선택한 제공업체의 측정항목을 분석하는 로직이 포함된 커스텀 컨테이너의 요구사항을 설명합니다.

시작하기 전에

  1. 로그인하여 Google 계정을 사용하세요.

    아직 계정이 없으면 새 계정을 등록하세요.

  2. Google Cloud CLI를 설치합니다.

  3. 외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.

  4. gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다.

    gcloud init
  5. 이 가이드를 완료하는 데 필요한 권한이 있는지 확인합니다.

  6. 프로젝트에 결제가 사용 설정되어 있는지 확인합니다 Google Cloud .

  7. Compute Engine, Cloud Deploy API를 사용 설정합니다.

    API 사용 설정에 필요한 역할

    API를 사용 설정하려면 역할 (roles/serviceusage.serviceUsageAdmin)이 포함된 서비스 사용량 관리자 IAM serviceusage.services.enable 권한이 필요합니다. 역할 부여 방법 알아보기.

    gcloud services enable clouddeploy.googleapis.com  compute.googleapis.com
  8. Google Cloud CLI를 설치합니다.

  9. 외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.

  10. gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다.

    gcloud init
  11. 이 가이드를 완료하는 데 필요한 권한이 있는지 확인합니다.

  12. 프로젝트에 결제가 사용 설정되어 있는지 확인합니다 Google Cloud .

  13. Compute Engine, Cloud Deploy API를 사용 설정합니다.

    API 사용 설정에 필요한 역할

    API를 사용 설정하려면 역할 (roles/serviceusage.serviceUsageAdmin)이 포함된 서비스 사용량 관리자 IAM serviceusage.services.enable 권한이 필요합니다. 역할 부여 방법 알아보기.

    gcloud services enable clouddeploy.googleapis.com  compute.googleapis.com

필요한 역할

분석 작업을 만들고 사용하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트의 계정에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.

역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

Cloud Deploy 서비스 계정에 분석 작업을 만들고 사용하는 데 필요한 권한이 있는지 확인하려면 관리자에게 프로젝트의 Cloud Deploy 서비스 계정에 다음 IAM 역할을 부여해 달라고 요청하세요.

역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

관리자는 커스텀 역할이나 다른 사전 정의된 역할을 통해 Cloud Deploy 서비스 계정에 필요한 권한을 부여할 수도 있습니다.

커스텀 분석 작업 구성

커스텀 분석 작업은 Google Cloud Observability의 알림을 사용하는 분석 작업과 동일하지만 커스텀 작업은 커스텀 컨테이너와 해당 컨테이너에서 실행할 명령어를 참조하는 하나 이상의 작업을 사용하여 측정항목 제공업체의 데이터를 처리합니다.

이 섹션에서는 모니터링 제공업체가 아닌 제공업체를 사용하는 Cloud Deploy 분석 작업 을 구성하는 방법을 설명합니다.Google Cloud

analysis 스탠자는 배포 전략 구성 (strategy.standard.analysis, 표준 전략의 경우) 내에서 직접 사용할 수 있습니다. 단계별로 분석을 구성하려면 커스텀 카나리아(strategy.canary.customCanaryDepolyment.phaseConfigs.phaseId.analysis)를 사용합니다.

strategy:
  standard:
    analysis:
      duration: DURATION
      customChecks:
      - id: CHECK_ID
        frequency: FREQUENCY
        task:
          type: container
          image: IMAGE_NAME
          command: COMMAND
          args: [ARGS]
          env:
            [VAR_NAME: VALUE]

각 항목의 의미는 다음과 같습니다.

  • DURATION

    분석 작업을 실행할 시간(초)입니다. 이 기간이 만료되면 작업이 완료됩니다. 분석이 실패하면 (컨테이너가 0이 아닌 종료 코드를 반환함) 기간이 만료되기 전에 작업이 완료 (FAILED)됩니다.

  • CHECK_ID

    개별 검사의 ID입니다. 이 ID는 이 분석 작업 내에서 고유해야 합니다.

  • FREQUENCY

    개별 검사를 실행할 빈도(초)입니다.

  • IMAGE_NAME

    컨테이너 이미지를 식별하는 경로 및 이름입니다.

  • COMMAND

    해당 컨테이너에서 실행할 명령어입니다(예: 셸 스크립트(/bin/bash)).

  • ARGS

    해당 명령어의 인수 목록입니다. 쉼표로 구분된 목록입니다. COMMAND_TO_RUN이 '/bin/sh'인 경우 인수 중 하나는 -c이며 또 다른 인수는 호출하는 셸에서 실행할 전체 명령어입니다.

  • VAR_NAME

    컨테이너에 전달할 환경 변수의 이름입니다. 환경 변수를 사용하여 컨테이너의 동작을 구성합니다. 즉, 변수와 해당 값은 측정항목 제공업체에서 모니터링할 항목을 컨테이너에 알려줍니다.

    여기에서 시스템 매개변수를 환경 변수로 사용할 수 있습니다.

  • VALUE

    각 환경 변수의 값입니다. Cloud Deploy는 이러한 환경 변수를 값과 함께 컨테이너에 전달하는 것 외에는 아무것도 하지 않습니다. 분석 로직에서 값을 사용하는 것은 컨테이너에 달려 있습니다.

커스텀 분석 정의의 각 검사에는 컨테이너를 참조하는 작업, 해당 컨테이너에서 실행할 명령어, 해당 컨테이너에 전달할 적용 가능한 환경 변수가 포함됩니다.

커스텀 컨테이너

커스텀 분석의 경우 제공하는 컨테이너는 사용하는 측정항목 제공업체의 원격 분석, 로그 또는 기타 데이터를 분석하는 역할을 합니다. Cloud Deploy 분석 작업은 컨테이너의 반환 코드를 기다립니다.

커스텀 컨테이너가 수행해야 하는 작업

커스텀 컨테이너는 측정항목 제공업체의 데이터를 수집하고, 측정항목, 로그 또는 기타 데이터가 제대로 작동하는 애플리케이션을 나타내는지 확인하고, 결과를 Cloud Deploy에 반환하는 역할을 합니다.

커스텀 컨테이너가 반환해야 하는 항목

Cloud Deploy는 0 또는 0이 아닌 종료 코드를 반환하는 것 외에는 커스텀 컨테이너에 아무것도 요구하지 않습니다. 컨테이너가 0이 아닌 종료 코드를 반환하면 분석이 실패합니다.

컨테이너는 Cloud Deploy에서 제공하는 Cloud Storage 버킷에 있는 results.json (JSON 형식)이라는 파일에 결과를 쓸 수 있습니다. 파일에는 키-값 쌍 형식의 메타데이터가 포함됩니다. 필수는 아닙니다.

사용 가능한 환경 변수

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 목록입니다. 콘솔의 해당 서비스에 대한 Cloud Run 서비스 세부정보에서 이를 확인할 수 있습니다. Google Cloud URL은 Cloud Run 서비스가 성공적으로 배포된 후 Cloud Run에서 생성됩니다. 따라서 이 환경 변수는 배포 후 후크 및 작업 확인에서만 사용할 수 있습니다.

  • 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

    출시에서 배포 후크, 작업 확인 또는 커스텀 렌더링 또는 배포 작업을 포함하는 단계입니다.

다음 단계