Pub/Sub トピックとサブスクリプションを構成する

App Design Center では、Pub/Sub トピックとサブスクリプションを構成して、メッセージを生成するサービス プロデューサーとメッセージを処理するサービスを切り離す、非同期でスケーラブルなメッセージングを提供できます。terraform-google-pubsub Terraform モジュールに基づいて、トピックとサブスクリプションのコンポーネント接続と構成パラメータをカスタマイズできます。

コンポーネントの接続

次の表に、Pub/Sub トピックまたはサブスクリプションに接続できるコンポーネントと、その結果としてアプリケーションとその生成された Terraform コードに適用される更新を示します。

連結成分

アプリケーションの更新

背景情報

Compute Engine インスタンス テンプレート

  • Compute Engine インスタンスは、Pub/Sub トピックにメッセージをパブリッシュし、Pub/Sub トピックからメッセージを受信できます。
  • Pub/Sub トピック ID が Compute Engine インスタンス テンプレートのメタデータに追加されます。
インスタンス テンプレート

サービス アカウント

  • このサービス アカウントは、Pub/Sub トピックを管理し、サブスクリプションからメッセージを pull できます。
  • roles/pubsub.editor ロールがサービス アカウントに追加されます。
  • サービス アカウントの名前とメール情報が Pub/Sub pull サブスクリプションに追加されます。
IAM を使用したアクセス制御

BigQuery

  • Pub/Sub サブスクリプションは、BigQuery データセットにメッセージを書き込むことができます。
  • BigQuery データセットの情報が BigQuery サブスクリプション フィールドに追加されます。
BigQuery サブスクリプション

Cloud Run

  • Cloud Run サービスは、メッセージを受信したり、Pub/Sub トピックにパブリッシュしたりできます。
  • Pub/Sub トピック ID が Cloud Run の環境変数に追加されます。
  • roles/pubsub.publisher ロールと roles/pubsub.subscriber ロールが Cloud Run サービス アカウントに追加されます。
  • Cloud Run サービスが Pub/Sub の push サブスクリプション フィールドと pull サブスクリプション フィールドに追加されます。
Cloud Run で Pub/Sub を使用するチュートリアル

Cloud Storage

  • Pub/Sub サブスクリプションは、Cloud Storage バケットにメッセージを書き込むことができます。
  • Cloud Storage バケットの情報が Pub/Sub サブスクリプションのフィールドに追加されます。
Cloud Storage のサブスクリプション

必須の構成パラメータ

テンプレートに Pub/Sub コンポーネントが含まれている場合は、デプロイする前に次のパラメータを構成する必要があります。

パラメータ名

説明と制約

背景情報

プロジェクト ID

Pub/Sub リソースをデプロイするプロジェクト。

コンポーネントを構成する

トピック

name トピック、サブスクリプション、スキーマ、スナップショットの名前に関するガイドライン

オプションの構成パラメータ

次のパラメータは省略可能です。詳細パラメータを表示するには、[構成] 領域で [詳細フィールドを表示] を選択します。

機能

パラメータ名

説明と制約情報

背景情報

トピックを作成する デフォルトでは、トピックが作成されます。トピックを作成しない場合は、チェックボックスをオフにします。 トピックの作成
サブスクリプションを作成する デフォルトでは、サブスクリプションが作成されます。サブスクリプションを作成しない場合は、チェックボックスをオフにします。 サブスクリプションの概要

トピックラベル

Key(キー) labels ラベル付き使用状況の報告
値 labels ラベル付き使用状況の報告

push サブスクリプション

名前 name トピック、サブスクリプション、スキーマ、スナップショットの名前に関するガイドライン
確認応答期限(秒) ackDeadlineSeconds 確認応答の期限
Push エンドポイント pushEndpoint Endpoints
X-goog-version push されたメッセージの Pub/Sub API 形式。たとえば、v1beta1 です。 attributes
OIDC サービス アカウントのメールアドレス serviceAccountEmail 認証
対象 者 認証
有効期限ポリシー expirationPolicy 有効期限
デッドレター トピック deadLetterTopic デッドレター トピック
確認応答済みメッセージを保持する retainAckedMessages 確認済みメッセージを保持する
メッセージ保持期間 messageRetentionDuration メッセージ保持期間
最大配信試行回数 maxDeliveryAttempts デッドレター トピック
最大バックオフ maximumBackoff 再試行ポリシー
最小バックオフ minimumBackoff 再試行ポリシー
フィルタ filter サブスクリプション フィルタ
メッセージの順序指定を有効にする enableMessageOrdering メッセージの順序指定

pull サブスクリプション

名前 name トピック、サブスクリプション、スキーマ、スナップショットの名前に関するガイドライン
確認応答期限(秒) ackDeadlineSeconds 確認応答の期限
デッドレター トピック deadLetterTopic デッドレター トピック
最大配信試行回数 maxDeliveryAttempts デッドレター トピック
確認応答済みメッセージを保持する retainAckedMessages 確認済みメッセージを保持する
メッセージ保持期間 messageRetentionDuration メッセージ保持期間
最大バックオフ maximumBackoff 再試行ポリシー
最小バックオフ minimumBackoff 再試行ポリシー
フィルタ filter サブスクリプション フィルタ
メッセージの順序指定を有効にする enableMessageOrdering メッセージの順序指定
サービス アカウント
1 回限りの配信を有効にする enableExactlyOnceDelivery 1 回限りの配信

BigQuery サブスクリプション

名前 name トピック、サブスクリプション、スキーマ、スナップショットの名前に関するガイドライン
テーブル テーブル BigQuery サブスクリプションを作成する
トピック スキーマを使用する useTopicSchema トピック サブスクリプションを使用する
テーブル スキーマを使用する useTableSchema テーブル スキーマを使用する
メタデータを書き込む writeMetadata メタデータを書き込む
不明なフィールドを削除する dropUnknownFields 不明な項目を削除する
確認応答期限(秒) ackDeadlineSeconds 確認応答の期限
確認応答済みメッセージを保持する retainAckedMessages 確認済みメッセージを保持する
メッセージ保持期間 messageRetentionDuration メッセージ保持期間
メッセージの順序指定を有効にする enableMessageOrdering メッセージの順序指定
有効期限ポリシー expirationPolicy 有効期限
フィルタ filter サブスクリプション フィルタ
デッドレター トピック deadLetterTopic デッドレター トピック
最大バックオフ maximumBackoff 再試行ポリシー
最小バックオフ minimumBackoff 再試行ポリシー

Cloud Storage サブスクリプション

名前 name トピック、サブスクリプション、スキーマ、スナップショットの名前に関するガイドライン
バケット バケット バケット名
ファイル名の接頭辞 filenamePrefix ファイル名の接頭辞、接尾辞、日時
ファイル名の接尾辞 filenameSuffix ファイル名の接頭辞、接尾辞、日時
ファイル名の日時形式 filenameDatetimeFormat ファイル名の接頭辞、接尾辞、日時
最大再生時間 maxDuration ファイルのバッチ処理
最大バイト数 maxBytes ファイルのバッチ処理
最大メッセージ数 maxMessages ファイルのバッチ処理
出力形式 textConfig または avroConfig ファイル形式
メタデータを書き込む writeMetadata メタデータを書き込む
トピック スキーマを使用する useTopicSchema トピック スキーマを使用する
確認応答期限(秒) ackDeadlineSeconds 確認応答の期限
確認応答済みメッセージを保持する 確認済みメッセージを保持する
メッセージ保持期間 messageRetentionDuration メッセージ保持期間
メッセージの順序指定を有効にする enableMessageOrdering メッセージの順序指定
有効期限ポリシー expirationPolicy 有効期限
フィルタ filter サブスクリプション フィルタ
デッドレター トピック deadLetterTopic デッドレター トピック
最大バックオフ maximumBackoff 再試行ポリシー
最小バックオフ minimumBackoff 再試行ポリシー

サブスクリプション ラベル

Key(キー) labels ラベル付き使用状況の報告
値 labels ラベル付き使用状況の報告
トピック メッセージの保持期間 topicMessageRetentionDuration メッセージ保持期間
トピックの KMS 鍵名 kmsKeyName 顧客管理の暗号鍵(CMEK)を使用する
BigQuery プロジェクト ロールを付与する デフォルトでは、BigQuery メタデータ閲覧者と BigQuery データ編集者のロールがデフォルトの Pub/Sub サービス アカウントに付与されます。これらのロールを付与しない場合は、チェックボックスをオフにします。 Pub/Sub サービス アカウントに BigQuery のロールを割り当てる
トークン作成者を付与する デフォルトでは、サービス アカウント トークン作成者のロールがデフォルトの Pub/Sub サービス アカウントに付与されます。このロールを付与しない場合は、チェックボックスをオフにします。 Pub/Sub の認証を設定する

スキーマ

名前 name スキーマに関する重要な情報
型 type スキーマの種類
定義 定義 スキーマの種類
エンコード エンコード スキーマをトピックに関連付けるためのガイドライン