알림 구성 자동화

Cloud Build 알리미를 사용하여 Slack, SMTP 서버, HTTP 엔드포인트 또는 BigQuery 인스턴스로 빌드 알림을 보내도록 Cloud Build를 구성할 수 있습니다. 이 페이지에서는 원하는 알리미에 대한 구성 프로세스를 자동화하는 방법을 설명합니다.

알림 구성 자동화

Cloud Build는 알림 구성을 자동화하는 데 사용할 수 있는 설정 스크립트를 제공합니다. 설정 스크립트를 사용하여 알림을 구성하려면 다음 안내를 따르세요.

Slack

설정

다음 섹션에서는 알리미의 알림 구성을 자동화하기 전에 완료해야 하는 단계를 설명합니다.

API 사용 설정 중

Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager API를 사용 설정합니다.

API 사용 설정

사용자 인증 정보 가져오기 및 저장

  1. 알림을 보낼 Slack 작업공간의 Slack 앱을 만듭니다.

  2. 수신 웹훅을 활성화하여 Cloud Build의 메시지를 Slack에 게시합니다.

  3. Slack 앱으로 이동하여 수신 웹훅의 URL을 찾습니다. URL은 다음과 비슷하게 표시됩니다.

    http://hooks.slack.com/services/...
    
  4. 수신 웹훅 URL을 보안 비밀 관리자에 저장합니다.

    1. Google Cloud Console에서 보안 비밀 관리자 페이지를 엽니다.

      보안 비밀 페이지 열기

    2. 보안 비밀 만들기를 클릭합니다.

    3. 보안 비밀의 이름을 입력합니다.

    4. 보안 비밀 값 아래에서 Slack 앱의 수신 웹훅 URL을 추가합니다.

    5. 보안 비밀을 저장하려면 보안 비밀 만들기를 클릭합니다.

권한 부여

Cloud Run은 Compute Engine 기본 서비스 계정으로 알리미 이미지를 실행합니다. 서비스 계정이 보안 비밀 관리자로부터 보안 비밀을 가져올 수 있도록 하려면 서비스 계정에 보안 비밀 관리자 보안 비밀 접근자 역할을 부여해야 합니다.

Cloud Run 서비스 계정에 보안 비밀에 대한 액세스 권한을 부여합니다.

  1. Google Cloud Console의 IAM 페이지로 이동합니다.

    IAM 페이지 열기

  2. 프로젝트와 연결된 Compute Engine 기본 서비스 계정을 찾습니다.

    Compute Engine 기본 서비스 계정은 다음과 비슷하게 표시되는데, 여기서 project-number는 프로젝트 번호입니다.

    project-number-compute@developer.gserviceaccount.com
    

    Compute Engine 기본 서비스 계정을 기록해 둡니다.

  3. Google Cloud Console에서 보안 비밀 관리자 페이지를 엽니다.

    보안 비밀 페이지 열기

  4. 보안 비밀이 포함된 보안 비밀 이름을 클릭합니다.

  5. 권한 탭에서 주 구성원 추가를 클릭합니다.

  6. 프로젝트와 연결된 Compute Engine 기본 서비스 계정을 추가합니다.

  7. Secret Manager 보안 비밀 접근자 권한을 역할로 선택합니다.

  8. 저장을 클릭합니다.

알리미 구성 파일 작성

알리미 구성 파일을 작성하여 Slack 알리미를 구성하고 빌드 이벤트로 필터링합니다.

다음 알리미 구성 파일 예시에서 filter 필드는 사용 가능한 변수 build와 함께 Common Expression Language를 사용하여 SUCCESS 상태의 빌드 이벤트를 필터링합니다.

  apiVersion: cloud-build-notifiers/v1
  kind: SlackNotifier
  metadata:
    name: example-slack-notifier
  spec:
    notification:
      filter: build.status == Build.Status.SUCCESS
      delivery:
        webhookUrl:
          secretRef: webhook-url
    secrets:
    - name: webhook-url
       value: projects/project-id/secrets/secret-name/versions/latest

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

  • webhook-url은 보안 비밀 관리자에 저장된 Slack 웹훅 URL 경로를 참조하기 위해 이 예시에 사용된 구성 변수입니다. 여기에서 지정하는 변수 이름은 secrets 아래의 name 필드와 일치해야 합니다.
  • project-id는 클라우드 프로젝트의 ID입니다.
  • secret-name은 Slack 웹훅 URL이 포함된 보안 비밀의 이름입니다.

예시를 보려면 Slack 알리미의 알리미 구성 파일을 참조하세요.

자동화 스크립트 실행

알림 구성을 자동화하려면 다음 단계를 따르세요.

  1. cloud-build-notifiers 저장소를 클론합니다.

  2. 저장소 루트에서 다음 명령어를 실행합니다.

     ./setup.sh notifier config-path secret-name
    

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

    • notifierslack, smtp, bigquery 또는 http와 같은 알리미의 이름입니다.
    • config-path는 알리미 구성 파일의 경로입니다.
    • secret-name은 보안 비밀 관리자에 저장된 보안 비밀의 이름입니다.

스크립트를 실행한 후 다음 메시지가 표시됩니다.

** NOTIFIER SETUP COMPLETE **

알리미가 설정되었습니다. cloud-build-notifiers 저장소에서 전체 스크립트를 확인하거나 스크립트와 관련된 사용 안내를 보려면 ./setup.sh --help를 실행할 수 있습니다.

SMTP

설정

다음 섹션에서는 알리미의 알림 구성을 자동화하기 전에 완료해야 하는 단계를 설명합니다.

API 사용 설정 중

Cloud Build, Compute Engine, Cloud Run, Pub/Sub, and Secret Manager API를 사용 설정합니다.

API 사용 설정

사용자 인증 정보 저장

  1. 보내는 사람의 이메일 계정 비밀번호를 보안 비밀 관리자에 저장합니다.

  2. Google Cloud Console에서 보안 비밀 관리자 페이지를 엽니다.

    보안 비밀 페이지 열기

  3. 보안 비밀 만들기를 클릭합니다.

  4. 보안 비밀의 이름을 입력합니다.

  5. 보안 비밀 값 아래에서 보내는 사람의 이메일 계정 비밀번호를 추가합니다.

  6. 보안 비밀을 저장하려면 보안 비밀 만들기를 클릭합니다.

권한 부여

Cloud Run은 Compute Engine 기본 서비스 계정으로 알리미 이미지를 실행합니다. 서비스 계정이 보안 비밀 관리자로부터 보안 비밀을 가져올 수 있도록 하려면 서비스 계정에 보안 비밀 관리자 보안 비밀 접근자 역할을 부여해야 합니다.

Cloud Run 서비스 계정에 보안 비밀에 대한 액세스 권한을 부여합니다.

  1. Google Cloud Console의 IAM 페이지로 이동합니다.

    IAM 페이지 열기

  2. 프로젝트와 연결된 Compute Engine 기본 서비스 계정을 찾습니다.

    Compute Engine 기본 서비스 계정은 다음과 비슷하게 표시되는데, 여기서 project-number는 프로젝트 번호입니다.

    project-number-compute@developer.gserviceaccount.com
    

    Compute Engine 기본 서비스 계정을 기록해 둡니다.

  3. Google Cloud Console에서 보안 비밀 관리자 페이지를 엽니다.

    보안 비밀 페이지 열기

  4. 보안 비밀이 포함된 보안 비밀 이름을 클릭합니다.

  5. 권한 탭에서 주 구성원 추가를 클릭합니다.

  6. 프로젝트와 연결된 Compute Engine 기본 서비스 계정을 추가합니다.

  7. Secret Manager 보안 비밀 접근자 권한을 역할로 선택합니다.

  8. 저장을 클릭합니다.

알리미 구성 파일 작성

SMTP 알리미를 구성하고 빌드 이벤트로 필터링하도록 알리미 구성 파일을 작성합니다.

다음 알리미 구성 파일 예시에서 filter 필드는 사용 가능한 변수 build와 함께 Common Expression Language를 사용하여 SUCCESS 상태의 빌드 이벤트를 필터링합니다.

 apiVersion: cloud-build-notifiers/v1
 kind: SMTPNotifier
 metadata:
   name: example-smtp-notifier
 spec:
   notification:
     filter: build.status == Build.Status.SUCCESS
     delivery:
       server: server-host-name
       port: "port"
       sender: sender-email
       from: from-email
       recipients:
         - recipient-email
         # optional: more emails here
       password:
         secretRef: smtp-password
   secrets:
   - name: smtp-password
     value: projects/project-id/secrets/secret-name/versions/latest

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

  • server-host-name은 SMTP 서버의 주소입니다.
  • port는 SMTP 요청을 처리할 포트입니다. 이 값은 문자열로 지정해야 합니다.
  • sender-email은 지정된 server-host-name에 표시되는 발신자 계정의 이메일 주소입니다.
  • from-email은 수신자에게 표시되는 이메일 주소입니다.
  • recipient-email은 발신자의 메시지를 받기 위한 하나 이상의 이메일 주소 목록입니다.
  • smtp-password는 보안 비밀 관리자에 저장된 보내는 사람의 이메일 계정 비밀번호를 참조하기 위해 이 예시에서 사용되는 구성 변수입니다. 여기에서 지정하는 변수 이름은 secrets 아래의 name 필드와 일치해야 합니다.
  • project-id는 클라우드 프로젝트의 ID입니다.
  • secret-name은 발신자의 이메일 계정에 대한 암호가 포함된 보안 비밀의 이름입니다.

예시를 보려면 SMTP 알리미에 대한 알리미 구성 파일을 참조하세요.

자동화 스크립트 실행

알림 구성을 자동화하려면 다음 단계를 따르세요.

  1. cloud-build-notifiers 저장소를 클론합니다.

  2. 저장소 루트에서 다음 명령어를 실행합니다.

     ./setup.sh notifier config-path secret-name
    

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

    • notifierslack, smtp, bigquery 또는 http와 같은 알리미의 이름입니다.
    • config-path는 알리미 구성 파일의 경로입니다.
    • secret-name은 보안 비밀 관리자에 저장된 보안 비밀의 이름입니다.

스크립트를 실행한 후 다음 메시지가 표시됩니다.

** NOTIFIER SETUP COMPLETE **

알리미가 설정되었습니다. cloud-build-notifiers 저장소에서 전체 스크립트를 확인하거나 스크립트와 관련된 사용 안내를 보려면 ./setup.sh --help를 실행할 수 있습니다.

BigQuery

설정

다음 섹션에서는 알리미의 알림 구성을 자동화하기 전에 완료해야 하는 단계를 설명합니다.

API 사용 설정 중

Cloud Build, Cloud Run, Pub/Sub, and BigQuery API를 사용 설정합니다.

API 사용 설정

권한 부여

Cloud Run 서비스 계정에 BigQuery 테이블을 만들고 쓰는 권한과 빌드와 관련된 Artifact Registry 데이터를 가져올 수 있는 권한을 부여합니다.

  1. Google Cloud Console의 IAM 페이지로 이동합니다.

    IAM 페이지 열기

  2. 프로젝트와 연결된 Compute Engine 기본 서비스 계정을 찾습니다.

    Compute Engine 기본 서비스 계정은 다음과 비슷하게 표시되는데, 여기서 project-number는 프로젝트 번호입니다.

        project-number-compute@developer.gserviceaccount.com
    
  3. Compute Engine 기본 서비스 계정이 있는 행에서 연필 아이콘을 클릭합니다.

    수정 권한 탭이 표시됩니다.

    1. 다른 역할 추가를 클릭합니다.

    2. 다음 역할을 추가합니다.

      • Artifact Registry 리더
      • BigQuery 데이터 편집자

        Artifact Registry 리더 역할을 사용하면 이미지의 데이터를 가져올 수 있습니다. BigQuery 데이터 편집자는 데이터에 대한 읽기 및 쓰기 액세스 권한을 제공합니다.

    3. 저장을 클릭합니다.

알리미 구성 파일 작성

알리미 구성 파일을 작성하여 BigQuery 알리미를 구성하고 빌드 이벤트로 필터링합니다.

다음 알리미 알림 구성 파일 예시에서 filter 필드는 build인 변수와 함께 Common Expression Language를 사용하여 지정된 트리거 ID로 빌드 이벤트를 필터링합니다.

 apiVersion: cloud-build-notifiers/v1
 kind: BigQueryNotifier
 metadata:
   name: example-bigquery-notifier
 spec:
   notification:
     filter: build.build_trigger_id == "123e4567-e89b-12d3-a456-426614174000"
     delivery:
       table: projects/project-id/datasets/dataset-name/tables/table-name

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

  • project-id는 클라우드 프로젝트의 ID입니다.
  • dataset-name은 데이터 세트에 지정할 이름입니다.
  • table-name은 테이블에 지정할 이름입니다.

알리미 구성 파일의 table-name은 다음을 참조할 수 있습니다.

  • 존재하지 않는 테이블
  • 스키마가 없는 빈 테이블
  • BigQuery 알리미의 스키마 사양과 일치하는 스키마가 포함된 기존 테이블

예시를 보려면 BigQuery 알리미에 대한 알리미 구성 파일을 참조하세요.

자동화 스크립트 실행

알림 구성을 자동화하려면 다음 단계를 따르세요.

  1. cloud-build-notifiers 저장소를 클론합니다.

  2. 저장소 루트에서 다음 명령어를 실행합니다.

     ./setup.sh notifier config-path
    

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

    • notifierslack, smtp, bigquery 또는 http와 같은 알리미의 이름입니다.
    • config-path는 알리미 구성 파일의 경로입니다.

스크립트를 실행한 후 다음 메시지가 표시됩니다.

** NOTIFIER SETUP COMPLETE **

알리미가 설정되었습니다. cloud-build-notifiers 저장소에서 전체 스크립트를 확인하거나 스크립트와 관련된 사용 안내를 보려면 ./setup.sh --help를 실행할 수 있습니다.

HTTP

설정

다음 섹션에서는 알리미의 알림 구성을 자동화하기 전에 완료해야 하는 단계를 설명합니다.

API 사용 설정 중

Cloud Build, Cloud Run, and Pub/Sub API를 사용 설정합니다.

API 사용 설정

알리미 구성 파일 작성

알리미 구성 파일을 작성하여 HTTP 알리미를 구성하고 빌드 이벤트로 필터링합니다.

다음 알리미 구성 파일 예시에서 filter 필드는 사용 가능한 변수 build와 함께 Common Expression Language를 사용하여 SUCCESS 상태의 빌드 이벤트를 필터링합니다.

    apiVersion: cloud-build-notifiers/v1
    kind: HTTPNotifier
    metadata:
      name: example-http-notifier
    spec:
      notification:
        filter: build.status == Build.Status.SUCCESS
        delivery:
          # The `http(s)://` protocol prefix is required.
          url: url

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

  • url은 요청의 URL을 지정하기 위해 이 예시에서 사용되는 구성 변수입니다.
  • url은 수신자 서버로 지정할 URL입니다.

예시를 보려면 HTTP 알리미의 알리미 구성 파일을 참조하세요.

자동화 스크립트 실행

알림 구성을 자동화하려면 다음 단계를 따르세요.

  1. cloud-build-notifiers 저장소를 클론합니다.

  2. 저장소 루트에서 다음 명령어를 실행합니다.

     ./setup.sh notifier config-path
    

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

    • notifierslack, smtp, bigquery 또는 http와 같은 알리미의 이름입니다.
    • config-path는 알리미 구성 파일의 경로입니다.

스크립트를 실행한 후 다음 메시지가 표시됩니다.

** NOTIFIER SETUP COMPLETE **

알리미가 설정되었습니다. cloud-build-notifiers 저장소에서 전체 스크립트를 확인하거나 스크립트와 관련된 사용 안내를 보려면 ./setup.sh --help를 실행할 수 있습니다.

다음 단계