Cloud Storage インポート トピックを使用すると、Cloud Storage から Pub/Sub にデータを継続的に取り込むことができます。その後、Pub/Sub がサポートしている任意の宛先にデータをストリーミングできます。Pub/Sub は、Cloud Storage バケットに追加された新しいオブジェクトを自動的に検出し、取り込みます。
Cloud Storage は、Trusted Cloud by S3NSでオブジェクトを保存するためのサービスです。オブジェクトとは、任意の形式のファイルで構成される不変のデータのことです。オブジェクトはバケットと呼ばれるコンテナに保存されます。バケットにマネージド フォルダを含めることもできます。このフォルダを使用すると、共有の名前接頭辞を持つオブジェクトのグループにアクセスできます。
Cloud Storage の詳細については、Cloud Storage のドキュメントをご覧ください。
インポート トピックの詳細については、インポート トピックについてをご覧ください。
始める前に
Cloud Storage インポート トピックを作成する前に、Cloud Storage バケットがすでに存在している必要があります。コンソールを使用してインポート トピックを作成する場合、ワークフローで Cloud Storage バケットを作成できます。他の構成方法については、バケットを作成するをご覧ください。
該当する場合は、Pub/Sub トピックのメッセージ ストレージ ポリシーが、Cloud Storage バケットが配置されているリージョンと重複していることを確認します。詳細については、メッセージ ストレージ ポリシーがバケットのロケーションに準拠しているをご覧ください。
一部の Trusted Cloud by S3NS サービスには、サービスがリソースにアクセスできるようにする Trusted Cloud管理のサービス アカウントがあります。これらのサービス アカウントは、サービス エージェントとも呼ばれます。Pub/Sub は、プロジェクトごとに
service-PROJECT_NUMBER@gcp-sa-pubsub.s3ns-system.iam.gserviceaccount.com
形式のサービス アカウントを作成し、維持します。次のものを含む、Cloud Storage インポート トピックを管理するために必要なロールと権限を Pub/Sub サービス アカウントに構成します。Pub/Sub サービス アカウントに Pub/Sub パブリッシャーのロール(
roles/pubsub.publisher
)を付与します。このサービス アカウントは、インポート トピックに公開されます。このロールを付与するには、Pub/Sub 管理者ロール(roles/pubsub.admin
)を持つユーザー アカウントが必要です。詳細については、Pub/Sub パブリッシャーのロールを Pub/Sub サービス アカウントに追加するをご覧ください。Pub/Sub サービス アカウントに Cloud Storage の権限を付与します。これらの権限を付与するには、ストレージ管理者ロール(
roles/storage.admin
)を持つユーザー アカウントが必要です。詳細については、Pub/Sub サービス アカウントに Cloud Storage ロールを割り当てるをご覧ください。
必要なロールと権限
Cloud Storage インポート トピックの作成と管理に必要な権限を取得するには、トピックまたはプロジェクトに対する Pub/Sub 編集者 (roles/pubsub.editor
)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
この事前定義ロールには、Cloud Storage インポート トピックの作成と管理に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
Cloud Storage インポート トピックの作成と管理には、次の権限が必要です。
-
インポート トピックを作成する:
pubsub.topics.create
-
インポート トピックを削除する:
pubsub.topics.delete
-
インポート トピックを取得する:
pubsub.topics.get
-
インポート トピックを一覧表示する:
pubsub.topics.list
-
インポート トピックに公開する:
pubsub.topics.publish
-
インポート トピックを更新する:
pubsub.topics.update
-
インポート トピックの IAM ポリシーを取得する:
pubsub.topics.getIamPolicy
-
インポート トピックの IAM ポリシーを構成する:
pubsub.topics.setIamPolicy
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
アクセス制御は、プロジェクト レベルと個々のリソースレベルで構成できます。
メッセージ ストレージ ポリシーがバケットのロケーションに準拠している
Pub/Sub トピックのメッセージ ストレージ ポリシーは、Cloud Storage バケットが配置されているリージョンと重複している必要があります。このポリシーは、Pub/Sub がメッセージ データを保存できる場所を指定します。
ロケーション タイプがリージョンのバケットの場合: ポリシーにその特定のリージョンを含める必要があります。たとえば、バケットが
us-central1
リージョンにある場合、メッセージ ストレージ ポリシーにもus-central1
を含める必要があります。ロケーション タイプがデュアルリージョンまたはマルチリージョンのバケットの場合: ポリシーには、デュアルリージョンまたはマルチリージョン ロケーション内のリージョンを少なくとも 1 つ含める必要があります。たとえば、バケットが
US multi-region
にある場合、メッセージ ストレージ ポリシーにはus-central1
、us-east1
、またはUS multi-region
内の他のリージョンを含めることができます。ポリシーにバケットのリージョンが含まれていない場合、トピックの作成は失敗します。たとえば、バケットが
europe-west1
にあり、メッセージ ストレージ ポリシーにasia-east1
のみが含まれている場合、エラーが発生します。メッセージ ストレージ ポリシーにバケットのロケーションと重複するリージョンが 1 つだけ含まれている場合、マルチリージョン冗長性が損なわれる可能性があります。これは、単一リージョンが使用できなくなると、データにアクセスできなくなる可能性があるためです。完全な冗長性を確保するには、バケットのマルチリージョンまたはデュアルリージョン ロケーションの一部であるリージョンを、メッセージ ストレージ ポリシーに少なくとも 2 つ含めることをおすすめします。
バケットのロケーションの詳細については、ドキュメントをご覧ください。
公開を有効にする
公開を有効にするには、Pub/Sub が Cloud Storage インポート トピックに公開できるように、Pub/Sub サービス アカウントに Pub/Sub パブリッシャー ロールを割り当てる必要があります。
すべての Cloud Storage インポート トピックへのパブリッシュを有効にする
プロジェクトで使用可能な Cloud Storage インポート トピックがない場合は、このオプションを選択します。
Trusted Cloud コンソールで、[IAM] ページに移動します。
[ S3NS提供のロール付与を含める] チェックボックスをオンにします。
次の形式の Pub/Sub サービス アカウントを探します。
service-{PROJECT_NUMBER}@gcp-sa-pubsub.s3ns-system.iam.gserviceaccount.com
このサービス アカウントで [プリンシパルを編集] ボタンをクリックします。
必要に応じて、[別のロールを追加] をクリックします。
Pub/Sub パブリッシャーのロール(
roles/pubsub.publisher
)を検索して選択します。[保存] をクリックします。
単一の Cloud Storage インポート トピックへのパブリッシュを有効にする
すでに存在する特定の Cloud Storage インポート トピックに公開する権限を Pub/Sub に付与するには、次の操作を行います。
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted 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 add-iam-policy-binding
コマンドを実行します。gcloud pubsub topics add-iam-policy-binding TOPIC_ID\ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-pubsub.s3ns-system.iam.gserviceaccount.com"\ --role="roles/pubsub.publisher"
次のように置き換えます。
TOPIC_ID は、Cloud Storage インポート トピックの ID または名前です。
[PROJECT_NUMBER] はプロジェクト番号です。 プロジェクト番号を表示するには、プロジェクトを特定するをご覧ください。
storage.objects.list
storage.objects.get
storage.buckets.get
バケット レベルで権限を付与します。特定の Cloud Storage バケットでは、Storage Legacy Object Reader(
roles/storage.legacyObjectReader
)ロールと Storage Legacy Bucket Reader(roles/storage.legacyBucketReader
)ロールを Pub/Sub サービス アカウントに付与します。プロジェクト レベルでロールを付与する必要がある場合は、代わりに Cloud Storage バケットを含むプロジェクトでストレージ管理者(
roles/storage.admin
)のロールを付与できます。Pub/Sub サービス アカウントに このロールを付与します。Trusted Cloud コンソールで、[Cloud Storage] ページに移動します。
メッセージを読み取って Cloud Storage インポート トピックにインポートする Cloud Storage バケットをクリックします。
[バケットの詳細] ページが開きます。
[バケットの詳細] ページで、[権限] タブをクリックします。
[権限] > [プリンシパルによる表示] タブで、[アクセス権を付与] をクリックします。
[アクセス権を付与] ページが開きます。
[プリンシパルを追加] セクションに、Pub/Sub サービス アカウントの名前を入力します。
サービス アカウントの形式は
service-PROJECT_NUMBER@gcp-sa-pubsub.s3ns-system.iam.gserviceaccount.com
です。 たとえば、PROJECT_NUMBER=112233445566
のプロジェクトの場合、サービス アカウントの形式はservice-112233445566@gcp-sa-pubsub.s3ns-system.iam.gserviceaccount.com
です。[ロールを割り当て] > [ロールを選択] プルダウンで、「
Object Reader
」と入力し、[Storage Legacy オブジェクト閲覧者] ロールを選択します。[別のロールを追加] をクリックします。
[ロールを選択] プルダウンで、
Bucket Reader
を入力し、[Storage Legacy Bucket Reader] のロールを選択します。[保存] をクリックします。
Trusted Cloud コンソールで、[IAM] ページに移動します。
[権限] > [プリンシパルによる表示] タブで、[アクセス権を付与] をクリックします。
[アクセス権を付与] ページが開きます。
[プリンシパルを追加] セクションに、Pub/Sub サービス アカウントの名前を入力します。
サービス アカウントの形式は
service-PROJECT_NUMBER@gcp-sa-pubsub.s3ns-system.iam.gserviceaccount.com
です。 たとえば、PROJECT_NUMBER=112233445566
のプロジェクトの場合、サービス アカウントの形式はservice-112233445566@gcp-sa-pubsub.s3ns-system.iam.gserviceaccount.com
です。[ロールを割り当て] > [ロールを選択] プルダウンで、「
Storage Admin
」と入力し、[ストレージ管理者] ロールを選択します。[保存] をクリックします。
テキスト。オブジェクトは書式なしテキストのデータを含むと想定されます。この入力形式では、オブジェクトが最短のオブジェクト作成時間を満たし、glob パターンの条件に一致する限り、バケット内のすべてのオブジェクトを取り込もうとします。
区切り文字。オブジェクトをメッセージに分割する区切り文字を指定することもできます。設定しない場合、デフォルトで改行文字(
\n
)になります。区切り文字は 1 文字のみにする必要があります。Avro。オブジェクトは Apache Avro バイナリ形式です。有効な Apache Avro 形式ではないオブジェクトは取り込まれません。Avro に関する制限事項は次のとおりです。
- Avro バージョン 1.1.0 と 1.2.0 はサポートされていません。
- Avro ブロックの最大サイズは 16 MB です。
Pub/Sub Avro。オブジェクトは Apache Avro バイナリ形式で、Pub/Sub の Avro ファイル形式で Cloud Storage サブスクリプションを使用して Cloud Storage に書き込まれたオブジェクトのスキーマと一致します。Pub/Sub Avro の重要なガイドラインは次のとおりです。
Avro レコードのデータ フィールドは、生成された Pub/Sub メッセージのデータ フィールドに入力するために使用されます。
Cloud Storage サブスクリプションに write_metadata オプションが指定されている場合、属性フィールドの値は、生成された Pub/Sub メッセージの属性として入力されます。
Cloud Storage に書き込まれた元のメッセージで順序指定キーが指定されている場合、このフィールドは、生成された Pub/Sub メッセージで
original_message_ordering_key
という名前の属性として設定されます。
- トピックとサブスクリプションを別々に作成すると、連続して作成した場合でもデータが失われる可能性があります。トピックは、定期購入なしで利用できる期間が短く設定されています。この間にトピックにデータが送信されると、データは失われます。最初にトピックを作成し、サブスクリプションを作成してから、トピックをインポート トピックに変換することで、インポート プロセス中にメッセージが失われることはありません。
Trusted Cloud コンソールで、[トピック] ページに移動します。
[トピックを作成] をクリックします。
トピックの詳細ページが開きます。
[トピック ID] フィールドに、Cloud Storage インポート トピックの ID を入力します。
トピックの命名の詳細については、命名ガイドラインをご覧ください。
[デフォルトのサブスクリプションを追加する] を選択します。
[取り込みを有効にする] を選択します。
取り込み元として [Google Cloud Storage] を選択します。
Cloud Storage バケットの場合は、[ブラウズ] をクリックします。
[バケットの選択] ページが開きます。次のオプションのいずれかを選択します。
適切なプロジェクトから既存のバケットを選択します。
作成アイコンをクリックし、画面の指示に沿って新しいバケットを作成します。バケットを作成したら、Cloud Storage インポート トピックのバケットを選択します。
バケットを指定すると、Pub/Sub は Pub/Sub サービス アカウントのバケットに対する適切な権限を確認します。権限の問題がある場合は、次のようなメッセージが表示されます。
Unable to verify if the Pub/Sub service agent has write permissions on this bucket. You may be lacking permissions to view or set permissions.
権限の問題が発生した場合は、[権限を設定] をクリックします。詳細については、Pub/Sub サービス アカウントに Cloud Storage 権限を付与するをご覧ください。
[オブジェクト形式] で、[テキスト]、[Avro]、[Pub/Sub Avro] のいずれかを選択します。
[テキスト] を選択した場合は、必要に応じて、オブジェクトをメッセージに分割する 区切り文字を指定できます。
これらのオプションの詳細については、入力形式をご覧ください。
省略可。トピックの最短のオブジェクト作成時間を指定できます。設定されている場合、最短のオブジェクト作成時間以降に作成されたオブジェクトのみが取り込まれます。
詳細については、最短のオブジェクト作成時間をご覧ください。
Glob パターンを指定する必要があります。バケット内のすべてのオブジェクトを取り込むには、glob パターンとして
**
を使用します。設定すると、指定されたパターンに一致するオブジェクトのみが取り込まれます。詳細については、グロブ パターンを照合するをご覧ください。
他のデフォルト設定はそのままにします。
[トピックを作成] をクリックします。
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted 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 create
コマンドを実行します。gcloud pubsub topics create TOPIC_ID \ --cloud-storage-ingestion-bucket=BUCKET_NAME \ --cloud-storage-ingestion-input-format=INPUT_FORMAT \ --cloud-storage-ingestion-text-delimiter=TEXT_DELIMITER \ --cloud-storage-ingestion-minimum-object-create-time=MINIMUM_OBJECT_CREATE_TIME \ --cloud-storage-ingestion-match-glob=MATCH_GLOB
このコマンドでは、
TOPIC_ID
、--cloud-storage-ingestion-bucket
フラグ、--cloud-storage-ingestion-input-format
フラグのみが必要です。残りのフラグはオプションであり、省略できます。次のように置き換えます。
TOPIC_ID
: トピックの名前または ID。BUCKET_NAME
: 既存のバケットの名前を指定します。例:prod_bucket
バケット名にプロジェクト ID を含めてはいけません。バケットを作成するには、バケットを作成するをご覧ください。INPUT_FORMAT
: 取り込まれるオブジェクトの形式を指定します。text
、avro
、pubsub_avro
のいずれかになります。これらのオプションの詳細については、入力形式をご覧ください。TEXT_DELIMITER
: テキスト オブジェクトを Pub/Sub メッセージに分割する区切り文字を指定します。これは 1 文字にする必要があり、INPUT_FORMAT
がtext
の場合にのみ設定する必要があります。デフォルトは改行文字(\n
)です。gcloud CLI を使用して区切り文字を指定する場合は、改行
\n
などの特殊文字の処理に注意してください。区切り文字が正しく解釈されるように、'\n'
形式を使用します。引用符やエスケープなしで\n
を使用すると、区切り文字は"n"
になります。MINIMUM_OBJECT_CREATE_TIME
: オブジェクトが取り込まれるために作成された最小時間を指定します。UTC でYYYY-MM-DDThh:mm:ssZ
の形式にする必要があります。例:2024-10-14T08:30:30Z
0001-01-01T00:00:00Z
から9999-12-31T23:59:59Z
までの過去または未来の任意の日付が有効です。MATCH_GLOB
: オブジェクトを取り込むために照合する glob パターンを指定します。gcloud CLI を使用している場合、*
文字を含む一致グロブでは、*
文字を\*\*.txt
の形式でエスケープするか、一致グロブ全体を引用符"**.txt"
または'**.txt'
で囲む必要があります。glob パターンでサポートされている構文については、Cloud Storage のドキュメントをご覧ください。
-
Trusted Cloud コンソールで、[トピック] ページに移動します。
-
Cloud Storage インポート トピックをクリックします。
-
[トピックの詳細] ページで、[編集] をクリックします。
-
変更するフィールドを更新します。
-
[更新] をクリックします。
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted 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.
インポート トピックの設定が失われないように、トピックを更新するたびにすべての設定を含めるようにしてください。省略すると、Pub/Sub は設定を元のデフォルト値にリセットします。
次のサンプルに記載されているフラグをすべて指定して、
gcloud pubsub topics update
コマンドを実行します。gcloud pubsub topics update TOPIC_ID \ --cloud-storage-ingestion-bucket=BUCKET_NAME\ --cloud-storage-ingestion-input-format=INPUT_FORMAT\ --cloud-storage-ingestion-text-delimiter=TEXT_DELIMITER\ --cloud-storage-ingestion-minimum-object-create-time=MINIMUM_OBJECT_CREATE_TIME\ --cloud-storage-ingestion-match-glob=MATCH_GLOB
次のように置き換えます。
-
TOPIC_ID はトピック ID または名前です。このフィールドは更新できません。
-
BUCKET_NAME: 既存のバケットの名前を指定します。例:
prod_bucket
バケット名にプロジェクト ID を含めてはいけません。バケットを作成するには、バケットを作成するをご覧ください。 -
INPUT_FORMAT: 取り込まれるオブジェクトの形式を指定します。
text
、avro
、pubsub_avro
のいずれかになります。これらのオプションの詳細については、 入力形式をご覧ください。 -
TEXT_DELIMITER: テキスト オブジェクトを Pub/Sub メッセージに分割する区切り文字を指定します。これは 1 文字にする必要があり、
INPUT_FORMAT
がtext
の場合にのみ設定する必要があります。デフォルトは改行文字(\n
)です。gcloud CLI を使用して区切り文字を指定する場合は、改行
\n
などの特殊文字の処理に注意してください。区切り文字が正しく解釈されるように、'\n'
形式を使用します。引用符やエスケープなしで\n
を使用すると、区切り文字は"n"
になります。 -
MINIMUM_OBJECT_CREATE_TIME: オブジェクトが取り込まれるために作成された最小時間を指定します。UTC で
YYYY-MM-DDThh:mm:ssZ
の形式にする必要があります。例:2024-10-14T08:30:30Z
0001-01-01T00:00:00Z
から9999-12-31T23:59:59Z
までの過去または未来の任意の日付が有効です。 -
MATCH_GLOB: オブジェクトを取り込むために照合する glob パターンを指定します。gcloud CLI を使用している場合、
*
文字を含む一致グロブでは、*
文字を\*\*.txt
の形式でエスケープするか、一致グロブ全体を引用符"**.txt"
または'**.txt'
で囲む必要があります。glob パターンでサポートされている構文については、 Cloud Storage のドキュメントをご覧ください。
-
Cloud Storage インポート トピックのプラットフォーム ログを有効にします。
トピックのサブスクリプションの種類を選択する。
トピックにメッセージを公開する方法を学習する。
Pub/Sub サービス アカウントに Cloud Storage のロールを割り当てる
Cloud Storage インポート トピックを作成するには、Pub/Sub サービス アカウントに、特定の Cloud Storage バケットからの読み取り権限が付与されている必要があります。次の権限が必要です。
これらの権限を Pub/Sub サービス アカウントに割り当てるには、次のいずれかの手順を選択します。
バケットの権限
次の手順を行い、バケットレベルで Storage Legacy Object Reader(roles/storage.legacyObjectReader
)のロールと Storage Legacy Bucket Reader(roles/storage.legacyBucketReader
)のロールを Pub/Sub サービス アカウントに付与します。
プロジェクトの権限
次の手順を行って、プロジェクト レベルでストレージ管理者(roles/storage.admin
)ロールを付与します。
Cloud Storage IAM の詳細については、Cloud Storage Identity and Access Management をご覧ください。
Cloud Storage インポート トピックのプロパティ
すべてのトピックに共通するプロパティの詳細については、トピックのプロパティをご覧ください。
バケット名
これは、Cloud Storage インポート トピックに公開されたデータを Pub/Sub が読み取る Cloud Storage バケットの名前です。
入力形式
Cloud Storage インポート トピックを作成するときに、取り込むオブジェクトの形式を テキスト、Avro、または Pub/Sub Avro として指定できます。
最短のオブジェクト作成時間
Cloud Storage インポート トピックの作成時に、必要に応じて最小オブジェクト作成時間を指定できます。このタイムスタンプ以降に作成されたオブジェクトのみが取り込まれます。このタイムスタンプは、YYYY-MM-DDThh:mm:ssZ
のような形式で指定する必要があります。0001-01-01T00:00:00Z
から 9999-12-31T23:59:59Z
までの過去または未来の任意の日付が有効です。
glob パターンを照合
Cloud Storage インポート トピックを作成するときに、必要に応じて一致する glob パターンを指定できます。このパターンに一致する名前のオブジェクトのみが取り込まれます。たとえば、接尾辞 .txt
が付いたすべてのオブジェクトを取り込むには、glob パターンを **.txt
として指定します。
glob パターンでサポートされている構文については、Cloud Storage のドキュメントをご覧ください。
Cloud Storage のインポート トピックを使用する
新しいインポート トピックを作成することも、既存のトピックを編集することもできます。
考慮事項
Cloud Storage インポート トピックを作成する
Cloud Storage インポート トピックを作成する手順は次のとおりです。
コンソール
gcloud
C++
このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の C++ の設定手順を実施してください。詳細については、Pub/Sub C++ API リファレンス ドキュメントをご覧ください。
Go
次のサンプルでは、Go Pub/Sub クライアント ライブラリのメジャー バージョン(v2)を使用しています。まだ v1 ライブラリを使用している場合は、v2 への移行ガイドをご覧ください。v1 コードサンプルの一覧については、 非推奨のコードサンプルをご覧ください。
このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の Go の設定手順を実施してください。詳細については、Pub/Sub Go API のリファレンス ドキュメントをご覧ください。
Java
このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の Java の設定手順を実施してください。詳細については、Pub/Sub Java API のリファレンス ドキュメントをご覧ください。
Node.js
このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の Node.js の設定手順を実施してください。詳細については、Pub/Sub Node.js API リファレンス ドキュメントをご覧ください。
Node.ts
このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の Node.js の設定手順を実施してください。詳細については、Pub/Sub Node.js API リファレンス ドキュメントをご覧ください。
Python
このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の Python の設定手順を実施してください。詳細については、Pub/Sub Python API のリファレンス ドキュメントをご覧ください。
問題が発生した場合は、Cloud Storage インポート トピックのトラブルシューティングをご覧ください。
Cloud Storage インポート トピックを編集する
Cloud Storage インポート トピックを編集して、そのプロパティを更新できます。
たとえば、取り込みを再開するには、バケットを変更するか、最小オブジェクト作成時間を更新します。
Cloud Storage インポート トピックを編集するには、次の操作を行います。
コンソール
gcloud
Cloud Storage インポート トピックの割り当てと上限
インポート トピックのパブリッシャーのスループットは、トピックのパブリッシュ割り当てによってバインドされます。詳細については、Pub/Sub の割り当てと上限をご覧ください。