トピック 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. Google Cloud コンソールで、Pub/Sub の [トピック] ページに移動します。

    [トピック] に移動

  2. SMT を編集するトピックをクリックします。

  3. [トピックの詳細] ページで、[編集] をクリックします。

    [変換] タブには、トピックに接続されているすべての SMT が一覧表示されます。

  4. [トピックの編集] ページでは、次のタスクを行うことができます。

    1. 新しい SMT を追加します。[変換を追加] をクリックします。

    2. 既存の SMT を編集します。SMT を開いて編集します。

    3. SMT を並べ替えます。上下の矢印キーを使用します。

    4. SMT を削除します。削除ボタンをクリックします。

  5. [更新] をクリックします。

gcloud

  1. Google Cloud コンソールで Cloud Shell をアクティブにします。

    Cloud Shell をアクティブにする

    Google Cloud コンソールの下部で Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。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 または名前に置き換えます。

次のステップ