このページでは、Lite トピックを作成、表示、削除する方法について説明します。
Lite トピックは、メッセージをパブリッシュできるゾーンリソースです。Lite トピックを作成するときは、メッセージを保存するゾーンを指定する必要があります。
Lite トピックを作成したら、Lite トピックにメッセージをパブリッシュする、Lite トピックに Lite サブスクリプションを作成する、Lite サブスクリプションからメッセージを受信することができます。
Lite トピックの作成
Lite トピックを作成するときは、スループットとストレージ容量を設定する必要があります。パーティションの数と容量によって、Lite トピックの容量が決まります。
Lite トピックのプロパティは次のとおりです。
- パーティションの数: Lite トピックのパーティションの数。
- パーティションあたりのストレージ: 各パーティションのストレージ容量(バイト単位)。30 GiB~10 TiB のストレージを指定できます。
- パブリッシュ スループットの容量: 各パーティションの最大パブリッシュ スループット。スループット容量として 1 秒あたり 4~16 MiB を指定できます。この値は整数にする必要があります。最適な結果を得るには、最小限のパブリッシュ スループットで Lite トピックを作成します。トラフィックが増加した場合は、Lite トピックを更新してパブリッシュ スループットを引き上げます。
サブスクライブ スループット容量: 各パーティションの最大サブスクライブ スループット。スループット容量として 1 秒あたり 4~32 MiB を指定できます。この値は整数にする必要があります。
メッセージ保持期間: Lite トピックでメッセージが保存される最長時間。メッセージ保持期間を指定しなかった場合、Lite トピックはストレージ容量を超過するまでメッセージを保存します。
Lite トピックは、Cloud Console、gcloud
コマンドライン ツール、または Pub/Sub Lite API を使用して作成できます。
Console
Cloud Console で、[Lite トピック] ページに移動します。
[Lite トピックを作成] をクリックします。
リージョンとリージョン内のゾーンを選択します。
[名前] セクションでLite トピック ID を入力します。Lite トピック名には、Lite トピック ID、ゾーン、プロジェクト番号が含まれます。
[スループット] セクションで、パーティションにプロビジョニングするための、パーティションの数を入力します。
[メッセージ ストレージ] セクションで、パーティションあたりのストレージを入力します。
オプション: [メッセージ保持] セクションで、[Drop messages after the specified duration even if storage is available] を選択して、保持期間を入力します。
[作成] をクリック
gcloud
Lite トピックを作成するには、gcloud pubsub lite-topics create
コマンドを使用します。
gcloud pubsub lite-topics create TOPIC_ID \ --zone=ZONE \ --partitions=NUMBER_OF_PARTITIONS \ --per-partition-bytes=STORAGE_PER_PARTITION \ [--message-retention-period=MESSAGE_RETENTION_PERIOD]
以下を置き換えます。
TOPIC_ID: Lite トピックの ID
ZONE: Pub/Sub Lite がサポートするゾーンの名前
NUMBER_OF_PARTITIONS: Lite トピックのパーティション数の整数
STORAGE_PER_PARTITION: 各パーティションのストレージ容量(
30GiB
など)MESSAGE_RETENTION_PERIOD: Lite トピックがメッセージを保存する期間(
1d
、2w
など)
リクエストが成功すると、コマンドラインに確認メッセージが表示されます。
Created [TOPIC_ID].
プロトコル
Lite トピックを作成するには、次のような POST
リクエストを送信します。
POST https://REGION-pubsublite.googleapis.com/v1/admin/projects/PROJECT_NUMBER/locations/ZONE/topics/TOPIC_ID Authorization: Bearer $(gcloud auth print-access-token)
以下を置き換えます。
REGION: Lite トピックを保存するゾーンのリージョン
PROJECT_NUMBER: Lite トピックを作成するプロジェクトのプロジェクト番号
ZONE: Pub/Sub Lite がサポートするゾーンの名前
TOPIC_ID: Lite トピックの ID
リクエスト本文に次のフィールドを指定します。
{ "partitionConfig": { "count": NUMBER_OF_PARTITIONS, "capacity": { "publishMibPerSec": PUBLISHING_CAPACITY, "subscribeMibPerSec": SUBSCRIBING_CAPACITY, } }, "retentionConfig": { "perPartitionBytes": STORAGE_PER_PARTITION, "period": MESSAGE_RETENTION_PERIOD, }, }
以下を置き換えます。
NUMBER_OF_PARTITIONS: Lite トピックのパーティション数の整数
STORAGE_PER_PARTITION: 各パーティションのストレージ容量(
30GiB
など)PUBLISHING_CAPACITY: 各パーティションのパブリッシュ スループット容量を表す整数
SUBSCRIBING_CAPACITY: 各パーティションのサブスクライブ スループット容量を表す整数
MESSAGE_RETENTION_PERIOD: Lite トピックがメッセージを保存する期間(
1d
、2w
など)
リクエストが成功すると、レスポンスは JSON 形式の Lite トピックになります。
{ "name": projects/PROJECT_NUMBER/locations/ZONE/topics/TOPIC_ID, "partitionConfig": { "count": NUMBER_OF_PARTITIONS, "capacity": { "publishMibPerSec": PUBLISHING_CAPACITY, "subscribeMibPerSec": SUBSCRIBING_CAPACITY, } }, "retentionConfig": { "perPartitionBytes": STORAGE_PER_PARTITION, "period": MESSAGE_RETENTION_PERIOD, }, }
Go
このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の Go の設定手順を実施してください。詳細については、Pub/Sub Go API のリファレンス ドキュメントをご覧ください。
Java
このサンプルを実行する前に、Pub/Sub Lite クライアント ライブラリの Java の設定手順を実施してください。
Python
このサンプルを実行する前に、Pub/Sub Lite クライアント ライブラリの Python の設定手順を実施してください。
使用可能なゾーンのリストについては、Pub/Sub Lite のロケーションをご覧ください。
Lite トピックを作成した後は、パーティションごとのスループットとストレージ容量をスケーリングできます。パーティション数は増やすことはできますが、減らすことはできません。詳細については、容量のスケーリングをご覧ください。
容量のプロビジョニング
Lite トピックはパーティションで構成されます。パーティションでは次の容量がサポートされます。
- パブリッシュ スループット: メッセージをパブリッシュできる最大合計レート。
- サブスクライブ スループット: Lite サブスクリプションにメッセージが転送される最大合計レート。
- ストレージ: パーティション内のメッセージの最大合計サイズ。
ストレージ容量を超えても、Pub/Sub Lite サービスが公開に失敗することはありません。代わりに、最も古いメッセージのメッセージ保持期間に関係なく、パーティションから最も古いメッセージが削除されます。Pub/Sub Lite サービスは、ベスト エフォート方式でメッセージを削除します。
容量と料金の関係については、Pub/Sub Lite の料金をご覧ください。
Lite トピックの更新
メッセージの保持期間を更新して、Lite トピックの容量をスケールできます。トピックのゾーンは更新できません。Lite トピックの容量をスケールするには、容量のスケーリングをご覧ください。
Lite トピックは、Cloud Console、gcloud
コマンドライン ツール、または Pub/Sub Lite API を使用して更新できます。
Console
Cloud Console で、[Lite トピック] ページに移動します。
[Lite トピック ID] をクリックします。
[編集] をクリックします。
パーティションの数を入力します。これは増やすことはできますが、減らすことはできません。
パーティションあたりのストレージと保持期間を入力します。
パブリッシュ スループットを選択します。
サブスクライブ スループットを選択します。
パーティションあたりのストレージを入力します。
gcloud
Lite トピックを更新するには、gcloud pubsub lite-topics update
コマンドを使用します。
gcloud pubsub lite-topics update TOPIC_ID \ --zone=ZONE \ --partitions=NUMBER_OF_PARTITIONS \ --per-partition-publish-mib=PUBLISHING_CAPACITY \ --per-partition-subscribe-mib=SUBSCRIBING_CAPACITY \ --per-partition-bytes=STORAGE_PER_PARTITION \ --message-retention-period=MESSAGE_RETENTION_PERIOD
以下を置き換えます。
TOPIC_ID: Lite トピックの ID
ZONE: Lite トピックが含まれるゾーンの名前
NUMBER_OF_PARTITIONS: Lite トピックに構成するパーティションの数。
PUBLISHING_CAPACITY: 各パーティションのパブリッシュ スループット容量を表す整数
SUBSCRIBING_CAPACITY: 各パーティションのサブスクライブ スループット容量を表す整数
STORAGE_PER_PARTITION: 各パーティションのストレージ容量(
30GiB
など)MESSAGE_RETENTION_PERIOD: Lite トピックがメッセージを保存する期間(
1d
、2w
など)
リクエストが成功すると、コマンドラインに Lite トピックが表示されます。
name: projects/PROJECT_NUMBER/locations/ZONE/topics/TOPIC_ID partitionConfig: count: NUMBER_OF_PARTITIONS capacity: publishMibPerSec: PUBLISHING_CAPACITY subscribeMibPerSec: SUBSCRIBING_CAPACITY retentionConfig: perPartitionBytes: STORAGE_PER_PARTITION period: MESSAGE_RETENTION_PERIOD
プロトコル
Lite トピックを更新するには、次のような PATCH
リクエストを送信します。
PATCH https://REGION-pubsublite.googleapis.com/v1/admin/projects/PROJECT_NUMBER/locations/ZONE/topics/TOPIC_ID?updateMask=partitionConfig.capacity,retentionConfig.perPartitionBytes,retentionConfig.period,partitionConfig.count Authorization: Bearer $(gcloud auth print-access-token)
以下を置き換えます。
REGION: Lite トピックが含まれるゾーンのリージョン
PROJECT_NUMBER: Lite トピックのプロジェクトのプロジェクト番号
ZONE: Lite トピックが含まれるゾーンの名前
TOPIC_ID: Lite トピックの ID
リクエスト本文に次のフィールドを指定します。
{ "partitionConfig": { "count": NUMBER_OF_PARTITIONS, "capacity": { "publishMibPerSec": PUBLISHING_CAPACITY, "subscribeMibPerSec": SUBSCRIBING_CAPACITY, } }, "retentionConfig": { "perPartitionBytes": STORAGE_PER_PARTITION, "period": MESSAGE_RETENTION_PERIOD, }, }
以下を置き換えます。
PUBLISHING_CAPACITY: 各パーティションのパブリッシュ スループット容量を表す整数
SUBSCRIBING_CAPACITY: 各パーティションのサブスクライブ スループット容量を表す整数
STORAGE_PER_PARTITION: 各パーティションのストレージ容量(
30GiB
など)MESSAGE_RETENTION_PERIOD: Lite トピックがメッセージを保存する期間(
1d
、2w
など)NUMBER_OF_PARTITIONS: Lite トピックに構成するパーティションの数。
リクエストが成功すると、レスポンスは JSON 形式の Lite トピックになります。
{ "name": projects/PROJECT_NUMBER/locations/ZONE/topics/TOPIC_ID, "partitionConfig": { "count": NUMBER_OF_PARTITIONS, "capacity": { "publishMibPerSec": PUBLISHING_CAPACITY, "subscribeMibPerSec": SUBSCRIBING_CAPACITY, } }, "retentionConfig": { "perPartitionBytes": STORAGE_PER_PARTITION, "period": MESSAGE_RETENTION_PERIOD, }, }
Go
このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の Go の設定手順を実施してください。詳細については、Pub/Sub Go API のリファレンス ドキュメントをご覧ください。
Java
このサンプルを実行する前に、Pub/Sub Lite クライアント ライブラリの Java の設定手順を実施してください。
Python
このサンプルを実行する前に、Pub/Sub Lite クライアント ライブラリの Python の設定手順を実施してください。
スループット容量のスケーリング
トピックのスループット容量は、垂直方向および水平方向にスケーリングできます。垂直方向のスケーリングでは、トピックのパーティションの容量を上下に調整します。Pub/Sub Lite サービスでは、Lite トピックの各パーティションに対して同じスループット容量をプロビジョニングします。たとえば、パブリッシュ スループット容量が 1 秒あたり 10 MiB の場合、各パーティションのパブリッシュ スループットは 1 秒あたり 10 MiB になります。
パーティションの数を増やして Lite トピックの容量を水平方向に増やすこともできます。トピック内のパーティションの数は減らすことはできません。
パーティションの数を変更すると、メッセージの相対的な順序は保持されません。トピック内のパーティション数を更新すると、注文キーからパーティションへのマッピングに使用されるハッシュ関数が変更されます。パーティション カウントの更新後にパブリッシュされた同じキーのメッセージが、更新の前にパブリッシュされたものとは異なるパーティションにマッピングされる可能性が高くなります。また、トピックのサイズ変更は、すべてのパブリッシャーに反映されるまでに時間がかかります。そのため、一部のパブリッシャーが新しいハッシュ関数を使用していて、一部のパブリッシャーがまだ古いハッシュ関数を使用している場合に少し時間がかかります。
ストレージ容量のスケーリング
Lite トピックのストレージ容量を増減することもできます。Lite トピックでは、各パーティションに同じ容量のストレージをプロビジョニングします。ストレージを 60 GiB に増やすと、各パーティションのストレージ容量が 60 GiB になります。
Lite トピックでストレージ容量を減らすと、Pub/Sub Lite サービスは最初に最も古いメッセージを削除します。
容量と料金の関係については、Pub/Sub Lite の料金をご覧ください。
Lite トピックの詳細情報の取得
Cloud Console、gcloud
コマンドライン ツール、または Pub/Sub Lite API を使用して Lite トピックの詳細を取得できます。
Console
Cloud Console で、[Lite トピック] ページに移動します。
[Lite トピック ID] をクリックします。
gcloud
Lite トピックの詳細を取得するには、gcloud pubsub lite-topics describe
コマンドを使用します。
gcloud pubsub lite-topics describe TOPIC_ID \ --zone=ZONE
以下を置き換えます。
TOPIC_ID: Lite トピックの ID
ZONE: Lite トピックが含まれるゾーンの名前
リクエストが成功すると、コマンドラインに Lite トピックが表示されます。
name: projects/PROJECT_NUMBER/locations/ZONE/topics/TOPIC_ID partitionConfig: count: NUMBER_OF_PARTITIONS capacity: publishMibPerSec: PUBLISHING_CAPACITY subscribeMibPerSec: SUBSCRIBING_CAPACITY retentionConfig: perPartitionBytes: STORAGE_PER_PARTITION period: MESSAGE_RETENTION_PERIOD
プロトコル
Lite トピックの詳細を取得するには、次のような GET
リクエストを送信します。
GET https://REGION-pubsublite.googleapis.com/v1/admin/projects/PROJECT_NUMBER/locations/ZONE/topics/TOPIC_ID Authorization: Bearer $(gcloud auth print-access-token)
以下を置き換えます。
REGION: Lite トピックが含まれるゾーンのリージョン
PROJECT_NUMBER: Lite トピックのプロジェクトのプロジェクト番号
ZONE: Lite トピックが含まれるゾーンの名前
TOPIC_ID: Lite トピックの ID
リクエストが成功すると、レスポンスは JSON 形式の Lite トピックになります。
{ "name": projects/PROJECT_NUMBER/locations/ZONE/topics/TOPIC_ID, "partitionConfig": { "count": NUMBER_OF_PARTITIONS, "capacity": { "publishMibPerSec": PUBLISHING_CAPACITY, "subscribeMibPerSec": SUBSCRIBING_CAPACITY, } }, "retentionConfig": { "perPartitionBytes": STORAGE_PER_PARTITION, "period": MESSAGE_RETENTION_PERIOD, }, }
Go
このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の Go の設定手順を実施してください。詳細については、Pub/Sub Go API のリファレンス ドキュメントをご覧ください。
Java
このサンプルを実行する前に、Pub/Sub Lite クライアント ライブラリの Java の設定手順を実施してください。
Python
このサンプルを実行する前に、Pub/Sub Lite クライアント ライブラリの Python の設定手順を実施してください。
Lite トピックの一覧表示
Cloud Console、gcloud
コマンドライン ツール、Pub/Sub Lite API を使用して、プロジェクトの Lite トピックを一覧表示できます。
Console
プロジェクトの Lite トピックのリストを表示するには、[Lite トピック] ページに移動します。
gcloud
プロジェクト内の Lite トピックを一覧表示するには、gcloud pubsub lite-topics list
コマンドを使用します。
gcloud pubsub lite-topics list \ --zone=ZONE
ZONE は、Lite トピックが存在しているゾーンの名前に置き換えます。
リクエストが成功すると、コマンドラインに Lite トピックが表示されます。
--- name: projects/PROJECT_NUMBER/locations/ZONE/topics/TOPIC_ID partitionConfig: count: NUMBER_OF_PARTITIONS capacity: publishMibPerSec: PUBLISHING_CAPACITY subscribeMibPerSec: SUBSCRIBING_CAPACITY retentionConfig: perPartitionBytes: STORAGE_PER_PARTITION period: MESSAGE_RETENTION_PERIOND --- name: projects/PROJECT_NUMBER/locations/ZONE/topics/TOPIC_ID partitionConfig: count: NUMBER_OF_PARTITIONS capacity: publishMibPerSec: PUBLISHING_CAPACITY subscribeMibPerSec: SUBSCRIBING_CAPACITY retentionConfig: perPartitionBytes: STORAGE_PER_PARTITION period: MESSAGE_RETENTION_PERIOND
プロトコル
プロジェクト内の Lite トピックを一覧表示するには、次のように GET
リクエストを送信します。
GET https://REGION-pubsublite.googleapis.com/v1/admin/projects/PROJECT_NUMBER/topics Authorization: Bearer $(gcloud auth print-access-token)
以下を置き換えます。
REGION: Lite トピックが含まれるゾーンのリージョン
PROJECT_NUMBER: Lite トピックのプロジェクトのプロジェクト番号
リクエストが成功すると、Lite トピックのリストが JSON 形式で返されます。
{ "topics": [ { "name": "projects/PROJECT_NUMBER/locations/ZONE/topics/TOPIC_ID", }, { "name": "projects/PROJECT_NUMBER/locations/ZONE/topics/TOPIC_ID", } ] }
Go
このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の Go の設定手順を実施してください。詳細については、Pub/Sub Go API のリファレンス ドキュメントをご覧ください。
Java
このサンプルを実行する前に、Pub/Sub Lite クライアント ライブラリの Java の設定手順を実施してください。
Python
このサンプルを実行する前に、Pub/Sub Lite クライアント ライブラリの Python の設定手順を実施してください。
Lite トピックの削除
Lite トピックは、Cloud Console、gcloud
コマンドライン ツール、または Pub/Sub Lite API を使用して削除できます。
Console
Cloud Console で、[Lite トピック] ページに移動します。
[Lite トピック ID] をクリックします。
[Lite トピックの詳細] ページで [削除] をクリックします。
表示されるフィールドに、「
delete
」と入力して削除する Lite トピックを確定します。[削除] をクリックします。
gcloud
Lite トピックを削除するには、gcloud pubsub lite-topics delete
コマンドを使用します。
delete
コマンドを実行します。gcloud pubsub lite-topics delete TOPIC_ID \ --zone=ZONE
以下を置き換えます。
TOPIC_ID: Lite トピックの ID
ZONE: Lite トピックが含まれるゾーンの名前
確定するには「
Y
」と入力します。
リクエストが成功した場合のレスポンスは、次のようになります。
Deleted topic [TOPIC_ID].
プロトコル
Lite トピックを削除するには、次のような DELETE
リクエストを送信します。
DELETE https://REGION-pubsublite.googleapis.com/v1/admin/projects/PROJECT_NUMBER/locations/ZONE/topics/TOPIC_ID Authorization: Bearer $(gcloud auth print-access-token)
以下を置き換えます。
REGION: Lite トピックが含まれるゾーンのリージョン
PROJECT_NUMBER: Lite トピックのプロジェクトのプロジェクト番号
ZONE: Lite トピックが含まれるゾーンの名前
TOPIC_ID: Lite トピックの ID
リクエストが成功した場合のレスポンスは空の JSON オブジェクトです。
Go
このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の Go の設定手順を実施してください。詳細については、Pub/Sub Go API のリファレンス ドキュメントをご覧ください。
Java
このサンプルを実行する前に、Pub/Sub Lite クライアント ライブラリの Java の設定手順を実施してください。
Python
このサンプルを実行する前に、Pub/Sub Lite クライアント ライブラリの Python の設定手順を実施してください。
Lite トピックを削除すると、そのトピックにメッセージをパブリッシュすることはできません。Lite トピックの Lite サブスクリプションは引き続き存在しますが、Lite サブスクリプションからメッセージを受信することはできません。