주제 SMT 업데이트

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

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

필수 역할 및 권한

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

이 사전 정의된 역할에는 주제 SMT를 업데이트하는 데 필요한 pubsub.topics.update 권한이 포함되어 있습니다.

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

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

주제 SMT 업데이트

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

콘솔

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

    주제로 이동

  2. SMT를 수정할 주제를 클릭합니다.

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

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

  4. 주제 수정 페이지에서 다음 작업을 할 수 있습니다.

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

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

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

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

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

gcloud

  1. 콘솔에서 Cloud Shell을 활성화합니다. Google Cloud

    Cloud Shell 활성화

    콘솔 하단에 Cloud Shell 세션이 시작되고 명령줄 프롬프트가 표시됩니다. Google Cloud Cloud Shell은 Google Cloud CLI가 사전 설치된 셸 환경으로, 현재 프로젝트의 값이 이미 설정되어 있습니다. 세션이 초기화되는 데 몇 초 정도 걸릴 수 있습니다.

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

    gcloud pubsub topics update TOPIC_ID \
        --message-transforms-file=TRANSFORMS_FILE

    다음을 바꿉니다.

    • TOPIC_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 topics update TOPIC_ID --clear-message-transforms

    TOPIC_ID를 업데이트할 주제의 ID 또는 이름으로 바꿉니다.

다음 단계