このドキュメントでは、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 を更新する手順は次のとおりです。
コンソール
Google Cloud コンソールで、Pub/Sub の [トピック] ページに移動します。
-
SMT を編集するトピックをクリックします。
[トピックの詳細] ページで、[編集] をクリックします。
[変換] タブには、トピックに接続されているすべての SMT が一覧表示されます。
-
[トピックの編集] ページでは、次のタスクを行うことができます。
-
新しい SMT を追加します。[変換を追加] をクリックします。
-
既存の SMT を編集します。SMT を開いて編集します。
-
SMT を並べ替えます。上下の矢印キーを使用します。
-
SMT を削除します。削除ボタンをクリックします。
-
-
[更新] をクリックします。
gcloud
-
Google Cloud コンソールで Cloud Shell をアクティブにします。
Google Cloud コンソールの下部で Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています。セッションが初期化されるまで数秒かかることがあります。
-
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 または名前に置き換えます。
-