トピック SMT を更新する

このドキュメントでは、Pub/Sub トピックの単一メッセージ変換(SMT)を更新する方法について説明します。SMT の変更は数分以内に反映されます。トピック SMT の場合、変更は SMT の更新後にパブリッシュされる新しいメッセージに適用されます。

トピック SMT を更新するには、 Google Cloud コンソール、Google Cloud CLI、 クライアント ライブラリ、または Pub/Sub API を使用します。

必要なロールと権限

トピック SMT を更新するために必要な権限を取得するには、プロジェクトに対する Pub/Sub 編集者 roles/pubsub.editor)IAM ロールの付与を管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

この事前定義ロールには、 pubsub.topics.update 権限が含まれています。これは、トピック SMT の更新に必要です。

カスタムロールや他の事前定義ロールを使用して、この権限を取得することもできます。

アクセス制御は、プロジェクト レベルと個々のリソースレベルで構成できます。

トピック 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 をアクティブにする

    コンソールの下部にある 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 または名前に置き換えます。

次のステップ