정기 결제 SMT 업데이트

이 문서에서는 Pub/Sub 구독의 단일 메시지 변환 (SMT)을 업데이트하는 방법을 설명합니다. SMT 변경사항은 몇 분 이내에 적용됩니다. 구독 SMT의 경우 UDF가 업데이트된 후 구독에 전송되는 새 메시지에 변경사항이 적용됩니다.

구독 SMT를 업데이트하려면 Google Cloud 콘솔, Google Cloud CLI, 클라이언트 라이브러리, Pub/Sub API를 사용하면 됩니다.

필수 역할 및 권한

구독 SMT를 업데이트하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 Pub/Sub 편집자 (roles/pubsub.editor) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

이 사전 정의된 역할에는 구독 SMT를 업데이트하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.

필수 권한

구독 SMT를 업데이트하려면 다음 권한이 필요합니다.

  • 구독에 구독 업데이트 권한을 부여합니다. projects.subscriptions.patch
  • 프로젝트에 보기 및 구독 권한을 부여합니다. 이 권한은 Google Cloud 콘솔을 사용하는 경우에만 필요합니다. pubsub.subscriptions.view

커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.

프로젝트 수준 및 개별 리소스 수준에서 액세스 제어를 구성할 수 있습니다.

구독 SMT 업데이트

구독 SMT를 업데이트하려면 다음 단계를 따르세요.

콘솔

  1. Google Cloud 콘솔에서 Pub/Sub 구독 페이지로 이동합니다.

    구독 페이지로 이동

  2. SMT를 수정하려는 정기 결제를 클릭합니다.

  3. 구독 세부정보 페이지에서 수정을 클릭합니다.

    변환 탭에는 구독에 연결된 모든 SMT가 나열됩니다.

  4. '구독 수정' 페이지에서 다음 작업을 수행할 수 있습니다.

    1. 새 SMT를 추가합니다. 변환 추가를 클릭합니다.

    2. 기존 SMT를 수정합니다. SMT를 펼쳐 SMT를 수정합니다.

    3. SMT를 재정렬합니다. 위쪽 및 아래쪽 화살표를 사용합니다.

    4. SMT를 삭제합니다. 삭제 버튼을 클릭합니다.

  5. 업데이트를 클릭합니다.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. gcloud pubsub subscriptions update 명령어를 실행합니다.

    gcloud pubsub subscriptions update SUBSCRIPTION_ID \
        --message-transforms-file=TRANSFORMS_FILE

    다음을 바꿉니다.

    • SUBSCRIPTION_ID: 업데이트하려는 구독의 ID 또는 이름입니다.

    • TRANSFORMS_FILE: 업데이트된 SMT가 포함된 YAML 또는 JSON 파일의 경로입니다.

      다음은 YAML 변환 파일의 예입니다.

      - javascriptUdf:
          code: >
              function redactSSN(message, metadata) {
                const data = JSON.parse(message.data);
                delete data['ssn'];
                message.data = JSON.stringify(data);
                return message;
              }
          functionName: redactSSN
      - javascriptUdf:
          code: >
              function filterHighAmount(message, metadata) {
                const data = JSON.parse(message.data);
                if (data['amount'] > 100 ) { return null; }
                return message;
              }
          functionName: filterHighAmount

    구독에서 모든 SMT를 삭제하려면 다음 명령어를 사용합니다.

    gcloud pubsub subscriptions update SUBSCRIPTION_ID --clear-message-transforms

    SUBSCRIPTION_ID을 업데이트할 정기 결제의 ID 또는 이름으로 바꿉니다.

다음 단계