이 문서에서는 Pub/Sub 주제의 단일 메시지 변환 (SMT)을 업데이트하는 방법을 설명합니다. SMT 변경사항은 몇 분 이내에 적용됩니다. 주제 SMT의 경우 변경사항은 SMT가 업데이트된 후 게시된 새 메시지에 적용됩니다.
주제 SMT를 업데이트하려면 Google Cloud 콘솔, Google Cloud CLI, 클라이언트 라이브러리, Pub/Sub API를 사용하면 됩니다.
필수 역할 및 권한
주제 SMT를 업데이트하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 Pub/Sub 편집자 (roles/pubsub.editor
) IAM 역할을 부여해 달라고 요청하세요.
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
이 사전 정의된 역할에는 주제 SMT를 업데이트하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.
필수 권한
주제 SMT를 업데이트하려면 다음 권한이 필요합니다.
-
주제에 주제 업데이트 권한을 부여합니다.
projects.topics.patch
-
프로젝트에 주제 보기 권한을 부여합니다. 이 권한은 Google Cloud 콘솔을 사용하는 경우에만 필요합니다.
pubsub.topics.view
커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.
프로젝트 수준 및 개별 리소스 수준에서 액세스 제어를 구성할 수 있습니다.
주제 SMT 업데이트
주제 SMT를 업데이트하려면 다음 단계를 따르세요.
콘솔
Google Cloud 콘솔에서 Pub/Sub 주제 페이지로 이동합니다.
-
SMT를 수정할 주제를 클릭합니다.
주제 세부정보 페이지에서 수정을 클릭합니다.
변환 탭에는 주제에 연결된 모든 SMT가 나열됩니다.
-
'주제 수정' 페이지에서 다음 작업을 수행할 수 있습니다.
-
새 SMT를 추가합니다. 변환 추가를 클릭합니다.
-
기존 SMT를 수정합니다. SMT를 펼쳐 SMT를 수정합니다.
-
SMT를 재정렬합니다. 위쪽 및 아래쪽 화살표를 사용합니다.
-
SMT를 삭제합니다. 삭제 버튼을 클릭합니다.
-
-
업데이트를 클릭합니다.
gcloud
-
In the Google Cloud console, 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.
-
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 또는 이름으로 바꿉니다.
-