Lite サブスクリプションの作成と管理

このページでは、Lite サブスクリプションを作成、表示、削除する方法について説明します。

Lite サブスクリプションは、サブスクライバーが Lite トピックからメッセージを読み取るために使用するゾーンリソースです。Lite サブスクリプションを作成する際、Lite トピックに紐付けます。1 つの Lite トピックに多数の Lite サブスクリプションを紐付けできます。

Lite トピックに Lite サブスクリプションを作成すると、Lite サブスクリプションからメッセージを受信できるようになります。

Lite サブスクリプションの作成

Lite サブスクリプションは、Lite サブスクリプションが紐付けられた Lite トピックと同じプロジェクトとゾーンに存在している必要があります。使用可能なゾーンのリストについては、Pub/Sub Lite のロケーションをご覧ください。

Lite サブスクリプションは、Cloud Console、gcloud コマンドライン ツール、または Pub/Sub Lite API を使用して作成できます。

コンソール

  1. Cloud Console で、[Lite サブスクリプション] ページに移動します。

    [Lite サブスクリプション] ページに移動

  2. [Lite サブスクリプションを作成] をクリックします。

  3. Lite サブスクリプション ID を入力します。

  4. メッセージを受信する Lite トピックを選択します。

  5. [すぐにメッセージを配信] または [保存後にメッセージを配信] を選択します。

  6. [作成] をクリック

gcloud

Lite サブスクリプションを作成するには、gcloud beta pubsub lite-subscriptions create コマンドを使用します。

gcloud beta pubsub lite-subscriptions create SUBSCRIPTION_ID \
  --zone=ZONE \
  --topic=TOPIC_ID \
  --delivery-requirement=DELIVERY_REQUIREMENT

以下を置き換えます。

  • SUBSCRIPTION_ID: Lite サブスクリプションの ID

  • ZONE: Pub/Sub Lite がサポートするゾーンの名前

  • TOPIC_ID: Lite サブスクリプションに関連付ける Lite トピックの ID。

  • DELIVERY_REQUIREMENT: deliver-after-stored または deliver-immediately

リクエストが成功すると、コマンドラインに確認メッセージが表示されます。

Created [SUBSCRIPTION_ID].

プロトコル

Lite サブスクリプションを作成するには、次のような POST リクエストを送信します。

POST https://REGION-pubsublite.googleapis.com/v1/admin/projects/PROJECT_NUMBER/locations/ZONE/subscriptions/SUBSCRIPTION_ID
Authorization: Bearer $(gcloud auth print-access-token)

以下を置き換えます。

リクエスト本文に次のフィールドを指定します。

{
  "topic": projects/PROJECT_NUMBER/locations/ZONE/topics/TOPIC_ID,
  "deliveryConfig": {
    "deliveryRequirement": DELIVERY_REQUIREMENT,
   }
}

DELIVERY_REQUIREMENT は、deliver-after-stored または deliver-immediately に置き換えます。

リクエストが成功した場合のレスポンスは、JSON 形式の Lite サブスクリプションになります。

{
  "deliveryConfig": {
    "deliveryRequirement": DELIVERY_REQUIREMENT,
   }
  "name": "projects/PROJECT_NUMBER/locations/ZONE/subscriptions/SUBSCRIPTION_ID",
  "topic": "projects/PROJECT_NUMBER/locations/ZONE/topics/TOPIC_ID",
}

Java

このサンプルを実行する前に、Pub/Sub Lite クライアント ライブラリの Java の設定手順を実施してください。

import com.google.cloud.pubsublite.AdminClient;
import com.google.cloud.pubsublite.AdminClientSettings;
import com.google.cloud.pubsublite.CloudRegion;
import com.google.cloud.pubsublite.CloudZone;
import com.google.cloud.pubsublite.ProjectNumber;
import com.google.cloud.pubsublite.SubscriptionName;
import com.google.cloud.pubsublite.SubscriptionPath;
import com.google.cloud.pubsublite.SubscriptionPaths;
import com.google.cloud.pubsublite.TopicName;
import com.google.cloud.pubsublite.TopicPath;
import com.google.cloud.pubsublite.TopicPaths;
import com.google.cloud.pubsublite.proto.Subscription;
import com.google.cloud.pubsublite.proto.Subscription.DeliveryConfig;
import com.google.cloud.pubsublite.proto.Subscription.DeliveryConfig.DeliveryRequirement;

public class CreateSubscriptionExample {

  public static void main(String... args) throws Exception {
    // TODO(developer): Replace these variables before running the sample.
    String cloudRegion = "your-cloud-region";
    char zoneId = 'b';
    String topicId = "your-topic-id";
    String subscriptionId = "your-subscription-id";
    long projectNumber = Long.parseLong("123456789");

    createSubscriptionExample(cloudRegion, zoneId, projectNumber, topicId, subscriptionId);
  }

  public static void createSubscriptionExample(
      String cloudRegion, char zoneId, long projectNumber, String topicId, String subscriptionId)
      throws Exception {

    TopicPath topicPath =
        TopicPaths.newBuilder()
            .setProjectNumber(ProjectNumber.of(projectNumber))
            .setZone(CloudZone.of(CloudRegion.of(cloudRegion), zoneId))
            .setTopicName(TopicName.of(topicId))
            .build();

    SubscriptionPath subscriptionPath =
        SubscriptionPaths.newBuilder()
            .setZone(CloudZone.of(CloudRegion.of(cloudRegion), zoneId))
            .setProjectNumber(ProjectNumber.of(projectNumber))
            .setSubscriptionName(SubscriptionName.of(subscriptionId))
            .build();

    Subscription subscription =
        Subscription.newBuilder()
            .setDeliveryConfig(
                // The server does not wait for a published message to be successfully
                // written to storage before delivering it to subscribers. As such, a
                // subscriber may receive a message for which the write to storage failed.
                // If the subscriber re-reads the offset of that message later on, there
                // may be a gap at that offset.
                DeliveryConfig.newBuilder()
                    .setDeliveryRequirement(DeliveryRequirement.DELIVER_IMMEDIATELY))
            .setName(subscriptionPath.value())
            .setTopic(topicPath.value())
            .build();

    AdminClientSettings adminClientSettings =
        AdminClientSettings.newBuilder().setRegion(CloudRegion.of(cloudRegion)).build();

    try (AdminClient adminClient = AdminClient.create(adminClientSettings)) {
      Subscription response = adminClient.createSubscription(subscription).get();
      System.out.println(response.getAllFields() + "created successfully.");
    }
  }
}

Lite サブスクリプションには配信の要件プロパティがあります。Lite サブスクリプションは、Pub/Sub Lite サービスがメッセージを受信した直後、または Pub/Sub Lite サービスがパーティションにメッセージを保存した後にのみ、サブスクライバーにメッセージを配信できます。

配信の要件が deliver-immediately で、Pub/Sub Lite サービスがストレージへのメッセージの書き込みに失敗した場合、Pub/Sub Lite サービスはパブリッシャーにエラーを返しますが、サブスクライバーは引き続きメッセージを受信する可能性があります。

Lite サブスクリプションの更新

Lite サブスクリプションは、Cloud Console、gcloud コマンドライン ツール、または Pub/Sub Lite API を使用して更新できます。

コンソール

  1. Cloud Console で、[Lite サブスクリプション] ページに移動します。

    [Lite サブスクリプション] ページに移動

  2. [Lite サブスクリプション ID] をクリックします。

  3. [Lite サブスクリプションの詳細] ページで [編集] をクリックします。

gcloud

Lite サブスクリプションを更新するには、gcloud beta pubsub lite-subscriptions update コマンドを使用します。

gcloud beta pubsub lite-subscriptions update SUBSCRIPTION_ID \
  --zone=ZONE \
  --delivery-requirement=DELIVERY_REQUIREMENT

以下を置き換えます。

  • SUBSCRIPTION_ID: Lite サブスクリプションの ID

  • ZONE: Lite サブスクリプションが含まれるゾーンの名前

  • DELIVERY_REQUIREMENT: deliver-after-stored または deliver-immediately

リクエストが成功すると、コマンドラインに Lite サブスクリプションが表示されます。

deliveryConfig:
  deliveryRequirement: DELIVERY_REQUIREMENT
name: projects/PROJECT_NUMBER/locations/ZONE/subscriptions/SUBSCRIPTION_ID
topic: projects/PROJECT_NUMBER/locations/ZONE/topics/TOPIC_ID

プロトコル

Lite サブスクリプションを更新するには、次のような PATCH リクエストを送信します。

PATCH https://REGION-pubsublite.googleapis.com/v1/admin/projects/PROJECT_NUMBER/locations/ZONE/subscriptions/SUBSCRIPTION_ID?updateMask=deliveryConfig.deliveryRequirement
Authorization: Bearer $(gcloud auth print-access-token)

以下を置き換えます。

  • REGION: Lite サブスクリプションを保存するゾーンのリージョン

  • PROJECT_NUMBER: Lite サブスクリプションを持つプロジェクトのプロジェクト番号

  • ZONE: Lite サブスクリプションが含まれるゾーンの名前

  • SUBSCRIPTION_ID: Lite サブスクリプションの ID

リクエスト本文に次のフィールドを指定します。

{
  "deliveryConfig": {
    "deliveryRequirement": DELIVERY_REQUIREMENT,
   }
}

DELIVERY_REQUIREMENT は、deliver-after-stored または deliver-immediately に置き換えます。

リクエストが成功した場合のレスポンスは、JSON 形式の Lite サブスクリプションになります。

{
  "deliveryConfig": {
    "deliveryRequirement": DELIVERY_REQUIREMENT,
   }
  "name": "projects/PROJECT_NUMBER/locations/ZONE/subscriptions/SUBSCRIPTION_ID",
  "topic": "projects/PROJECT_NUMBER/locations/ZONE/topics/TOPIC_ID",
}

Java

このサンプルを実行する前に、Pub/Sub Lite クライアント ライブラリの Java の設定手順を実施してください。

import com.google.cloud.pubsublite.AdminClient;
import com.google.cloud.pubsublite.AdminClientSettings;
import com.google.cloud.pubsublite.CloudRegion;
import com.google.cloud.pubsublite.CloudZone;
import com.google.cloud.pubsublite.ProjectNumber;
import com.google.cloud.pubsublite.SubscriptionName;
import com.google.cloud.pubsublite.SubscriptionPath;
import com.google.cloud.pubsublite.SubscriptionPaths;
import com.google.cloud.pubsublite.proto.Subscription;
import com.google.cloud.pubsublite.proto.Subscription.DeliveryConfig;
import com.google.cloud.pubsublite.proto.Subscription.DeliveryConfig.DeliveryRequirement;
import com.google.protobuf.FieldMask;

public class UpdateSubscriptionExample {

  public static void main(String... args) throws Exception {
    // TODO(developer): Replace these variables before running the sample.
    String cloudRegion = "your-cloud-region";
    char zoneId = 'b';
    // Choose an existing subscription for the sample to work.
    String subscriptionId = "your-subscription-id";
    long projectNumber = Long.parseLong("123456789");

    updateSubscriptionExample(cloudRegion, zoneId, projectNumber, subscriptionId);
  }

  public static void updateSubscriptionExample(
      String cloudRegion, char zoneId, long projectNumber, String subscriptionId) throws Exception {
    SubscriptionPath subscriptionPath =
        SubscriptionPaths.newBuilder()
            .setZone(CloudZone.of(CloudRegion.of(cloudRegion), zoneId))
            .setProjectNumber(ProjectNumber.of(projectNumber))
            .setSubscriptionName(SubscriptionName.of(subscriptionId))
            .build();

    FieldMask fieldMask =
        FieldMask.newBuilder().addPaths("delivery_config.delivery_requirement").build();

    Subscription subscription =
        Subscription.newBuilder()
            .setDeliveryConfig(
                // DELIVER_AFTER_STORED ensures that the server won't deliver a published message
                // to subscribers until the message has been successfully written to storage.
                DeliveryConfig.newBuilder()
                    .setDeliveryRequirement(DeliveryRequirement.DELIVER_AFTER_STORED))
            .setName(subscriptionPath.value())
            .build();

    AdminClientSettings adminClientSettings =
        AdminClientSettings.newBuilder().setRegion(CloudRegion.of(cloudRegion)).build();

    try (AdminClient adminClient = AdminClient.create(adminClientSettings)) {
      Subscription subscriptionBeforeUpdate = adminClient.getSubscription(subscriptionPath).get();
      System.out.println("Before update: " + subscriptionBeforeUpdate.getAllFields());

      Subscription subscriptionAfterUpdate =
          adminClient.updateSubscription(subscription, fieldMask).get();
      System.out.println("After update: " + subscriptionAfterUpdate.getAllFields());
    }
  }
}

Lite サブスクリプションの詳細を取得する

Lite サブスクリプションの詳細は、Cloud Console、gcloud コマンドライン ツール、または Pub/Sub Lite API を使用して取得できます。

コンソール

  1. Cloud Console で、[Lite サブスクリプション] ページに移動します。

    [Lite サブスクリプション] ページに移動

  2. [Lite サブスクリプション ID] をクリックします。

gcloud

Lite サブスクリプションの詳細を取得するには、gcloud beta pubsub lite-subscriptions describe コマンドを使用します。

gcloud beta pubsub lite-subscriptions describe SUBSCRIPTION_ID \
  --zone=ZONE

以下を置き換えます。

  • SUBSCRIPTION_ID: Lite サブスクリプションの ID

  • ZONE: Lite サブスクリプションが含まれるゾーンの名前

リクエストが成功すると、コマンドラインに Lite トピックが表示されます。

deliveryConfig:
  deliveryRequirement: DELIVERY_REQUIREMENT
name: projects/PROJECT_NUMBER/locations/ZONE/subscriptions/SUBSCRIPTION_ID
topic: projects/PROJECT_NUMBER/locations/ZONE/topics/TOPIC_ID

プロトコル

Lite サブスクリプションの詳細を取得するには、次のような GET リクエストを送信します。

GET https://REGION-pubsublite.googleapis.com/v1/admin/projects/PROJECT_NUMBER/locations/ZONE/subscriptions/SUBSCRIPTION_ID
Authorization: Bearer $(gcloud auth print-access-token)

以下を置き換えます。

  • REGION: Lite サブスクリプションを保存するゾーンのリージョン

  • PROJECT_NUMBER: Lite サブスクリプションを持つプロジェクトのプロジェクト番号

  • ZONE: Lite サブスクリプションが含まれるゾーンの名前

  • SUBSCRIPTION_ID: Lite サブスクリプションの ID

リクエストが成功すると、レスポンスは JSON 形式の Lite トピックになります。

{
  "deliveryConfig": {
    "deliveryRequirement": DELIVERY_REQUIREMENT,
   }
  "name": "projects/PROJECT_NUMBER/locations/ZONE/subscriptions/SUBSCRIPTION_ID",
  "topic": "projects/PROJECT_NUMBER/locations/ZONE/topics/TOPIC_ID",
}

Java

このサンプルを実行する前に、Pub/Sub Lite クライアント ライブラリの Java の設定手順を実施してください。

import com.google.cloud.pubsublite.AdminClient;
import com.google.cloud.pubsublite.AdminClientSettings;
import com.google.cloud.pubsublite.CloudRegion;
import com.google.cloud.pubsublite.CloudZone;
import com.google.cloud.pubsublite.ProjectNumber;
import com.google.cloud.pubsublite.SubscriptionName;
import com.google.cloud.pubsublite.SubscriptionPath;
import com.google.cloud.pubsublite.SubscriptionPaths;
import com.google.cloud.pubsublite.proto.Subscription;

public class GetSubscriptionExample {

  public static void main(String... args) throws Exception {
    // TODO(developer): Replace these variables before running the sample.
    String cloudRegion = "your-cloud-region";
    char zoneId = 'b';
    // Choose an existing subscription.
    String subscriptionId = "your-subscription-id";
    long projectNumber = Long.parseLong("123456789");

    getSubscriptionExample(cloudRegion, zoneId, projectNumber, subscriptionId);
  }

  public static void getSubscriptionExample(
      String cloudRegion, char zoneId, long projectNumber, String subscriptionId) throws Exception {

    SubscriptionPath subscriptionPath =
        SubscriptionPaths.newBuilder()
            .setZone(CloudZone.of(CloudRegion.of(cloudRegion), zoneId))
            .setProjectNumber(ProjectNumber.of(projectNumber))
            .setSubscriptionName(SubscriptionName.of(subscriptionId))
            .build();

    AdminClientSettings adminClientSettings =
        AdminClientSettings.newBuilder().setRegion(CloudRegion.of(cloudRegion)).build();

    try (AdminClient adminClient = AdminClient.create(adminClientSettings)) {
      Subscription subscription = adminClient.getSubscription(subscriptionPath).get();
      System.out.println("Subscription: " + subscription.getAllFields());
    }
  }
}

Lite サブスクリプションの一覧表示

プロジェクト内の Lite サブスクリプションまたは、Lite トピックの Lite サブスクリプションを一覧表示できます。

プロジェクト内の Lite サブスクリプションを一覧表示する

Cloud Console、gcloud コマンドライン ツール、または Pub/Sub Lite API を使用して、プロジェクト内の Lite サブスクリプションを一覧表示できます。

コンソール

プロジェクト内の Lite サブスクリプションのリストを表示するには、[Lite サブスクリプション] ページに移動します。

gcloud

プロジェクト内の Lite サブスクリプションを一覧表示するには、gcloud beta pubsub lite-subscriptions list コマンドを使用します。

gcloud beta pubsub lite-subscriptions list \
  --zone=ZONE

ZONE は、Lite サブスクリプションが含まれるゾーンの名前に置き換えます。

リクエストが成功すると、コマンドラインに Lite サブスクリプションが表示されます。

---
deliveryConfig:
  deliveryRequirement: DELIVERY_REQUIREMENT
name: projects/PROJECT_NUMBER/locations/ZONE/subscriptions/SUBSCRIPTION_ID
topic: projects/PROJECT_NUMBER/locations/ZONE/topics/TOPIC_ID
---
deliveryConfig:
  deliveryRequirement: DELIVERY_REQUIREMENT
name: projects/PROJECT_NUMBER/locations/ZONE/subscriptions/SUBSCRIPTION_ID
topic: projects/PROJECT_NUMBER/locations/ZONE/topics/TOPIC_ID

プロトコル

プロジェクト内の Lite サブスクリプションを一覧表示するには、次のように GET リクエストを送信します。

GET https://REGION-pubsublite.googleapis.com/v1/admin/projects/PROJECT_NUMBER/subscriptions
Authorization: Bearer $(gcloud auth print-access-token)

以下を置き換えます。

  • REGION: Lite サブスクリプションを保存するゾーンのリージョン

  • PROJECT_NUMBER: Lite サブスクリプションを持つプロジェクトのプロジェクト番号

リクエストが成功すると、レスポンスは JSON 形式の Lite トピックになります。

{
  "subscriptions": [
      {
          "name": "projects/PROJECT_NUMBER/locations/ZONE/subscriptions/SUBSCRIPTION_ID"
      },
      {
          "name": "projects/PROJECT_NUMBER/locations/ZONE/subscriptions/SUBSCRIPTION_ID"
      }
  ]
}

Java

このサンプルを実行する前に、Pub/Sub Lite クライアント ライブラリの Java の設定手順を実施してください。

import com.google.cloud.pubsublite.AdminClient;
import com.google.cloud.pubsublite.AdminClientSettings;
import com.google.cloud.pubsublite.CloudRegion;
import com.google.cloud.pubsublite.CloudZone;
import com.google.cloud.pubsublite.LocationPath;
import com.google.cloud.pubsublite.LocationPaths;
import com.google.cloud.pubsublite.ProjectNumber;
import com.google.cloud.pubsublite.proto.Subscription;
import java.util.List;

public class ListSubscriptionsInProjectExample {

  public static void main(String... args) throws Exception {
    // TODO(developer): Replace these variables before running the sample.
    String cloudRegion = "your-cloud-region";
    char zoneId = 'b';
    long projectNumber = Long.parseLong("123456789");

    listSubscriptionsInProjectExample(cloudRegion, zoneId, projectNumber);
  }

  public static void listSubscriptionsInProjectExample(
      String cloudRegion, char zoneId, long projectNumber) throws Exception {

    AdminClientSettings adminClientSettings =
        AdminClientSettings.newBuilder().setRegion(CloudRegion.of(cloudRegion)).build();

    LocationPath locationPath =
        LocationPaths.newBuilder()
            .setProjectNumber(ProjectNumber.of(projectNumber))
            .setZone(CloudZone.of(CloudRegion.of(cloudRegion), zoneId))
            .build();

    try (AdminClient adminClient = AdminClient.create(adminClientSettings)) {
      List<Subscription> subscriptions = adminClient.listSubscriptions(locationPath).get();
      for (Subscription subscription : subscriptions) {
        System.out.println(subscription.getAllFields());
      }
      System.out.println(subscriptions.size() + " subscription(s) listed.");
    }
  }
}

Lite トピックの Lite サブスクリプションを一覧表示する

Cloud Console、gcloud コマンドライン ツール、または Pub/Sub Lite API を使用して、Lite トピックの Lite サブスクリプションを一覧表示できます。

コンソール

  1. Cloud Console で、[Lite トピック] ページに移動します。

    [Lite トピック] ページに移動

  2. [Lite トピック ID] を選択します。

  3. [Lite トピック] 詳細ページの [Lite サブスクリプション] セクションに、Lite トピックの Lite サブスクリプションのリストが含まれます。

gcloud

トピックの Lite サブスクリプションを一覧表示するには、gcloud beta pubsub lite-topics list-subscriptions コマンドを使用します。

gcloud beta pubsub lite-topics list-subscriptions TOPIC_ID \
  --zone=ZONE

以下を置き換えます。

  • TOPIC_ID: Lite サブスクリプションが関連付けられた Lite トピックの ID

  • ZONE: Lite サブスクリプションが含まれるゾーンの名前

リクエストが成功すると、コマンドラインに Lite サブスクリプションが表示されます。

---
deliveryConfig:
  deliveryRequirement: DELIVERY_REQUIREMENT
name: projects/PROJECT_NUMBER/locations/ZONE/subscriptions/SUBSCRIPTION_ID
topic: projects/PROJECT_NUMBER/locations/ZONE/topics/TOPIC_ID
---
deliveryConfig:
  deliveryRequirement: DELIVERY_REQUIREMENT
name: projects/PROJECT_NUMBER/locations/ZONE/subscriptions/SUBSCRIPTION_ID
topic: projects/PROJECT_NUMBER/locations/ZONE/topics/TOPIC_ID

プロトコル

Lite トピックの Lite サブスクリプションを一覧表示するには、次のような GET リクエストを送信します。

GET https://REGION-pubsublite.googleapis.com/v1/admin/projects/PROJECT_NUMBER/lite-topics/TOPIC_ID/subscriptions
Authorization: Bearer $(gcloud auth print-access-token)

以下を置き換えます。

  • REGION: Lite サブスクリプションを保存するゾーンのリージョン

  • PROJECT_NUMBER: Lite サブスクリプションを持つプロジェクトのプロジェクト番号

  • ZONE: Lite サブスクリプションが含まれるゾーンの名前

  • TOPIC_ID: Lite サブスクリプションが関連付けられた Lite トピックの ID

リクエストが成功した場合、レスポンスは JSON 形式の Lite サブスクリプションのリストになります。

{
  "subscriptions": [
      {
          "name": "projects/PROJECT_NUMBER/locations/ZONE/subscriptions/SUBSCRIPTION_ID"
      },
      {
          "name": "projects/PROJECT_NUMBER/locations/ZONE/subscriptions/SUBSCRIPTION_ID"
      }
  ]
}

Java

このサンプルを実行する前に、Pub/Sub Lite クライアント ライブラリの Java の設定手順を実施してください。

import com.google.cloud.pubsublite.AdminClient;
import com.google.cloud.pubsublite.AdminClientSettings;
import com.google.cloud.pubsublite.CloudRegion;
import com.google.cloud.pubsublite.CloudZone;
import com.google.cloud.pubsublite.ProjectNumber;
import com.google.cloud.pubsublite.SubscriptionPath;
import com.google.cloud.pubsublite.TopicName;
import com.google.cloud.pubsublite.TopicPath;
import com.google.cloud.pubsublite.TopicPaths;
import java.util.List;

public class ListSubscriptionsInTopicExample {

  public static void main(String... args) throws Exception {
    // TODO(developer): Replace these variables before running the sample.
    String cloudRegion = "your-cloud-region";
    char zoneId = 'b';
    long projectNumber = Long.parseLong("123456789");
    String topicId = "your-topic-id";

    listSubscriptionsInTopicExample(cloudRegion, zoneId, projectNumber, topicId);
  }

  public static void listSubscriptionsInTopicExample(
      String cloudRegion, char zoneId, long projectNumber, String topicId) throws Exception {

    TopicPath topicPath =
        TopicPaths.newBuilder()
            .setProjectNumber(ProjectNumber.of(projectNumber))
            .setZone(CloudZone.of(CloudRegion.of(cloudRegion), zoneId))
            .setTopicName(TopicName.of(topicId))
            .build();

    AdminClientSettings adminClientSettings =
        AdminClientSettings.newBuilder().setRegion(CloudRegion.of(cloudRegion)).build();

    try (AdminClient adminClient = AdminClient.create(adminClientSettings)) {
      List<SubscriptionPath> subscriptionPaths =
          adminClient.listTopicSubscriptions(topicPath).get();
      for (SubscriptionPath subscription : subscriptionPaths) {
        System.out.println(subscription.value());
      }
      System.out.println(subscriptionPaths.size() + " subscription(s) listed.");
    }
  }
}

Lite サブスクリプションの削除

Lite サブスクリプションは、Cloud Console、gcloud コマンドライン ツール、または Pub/Sub Lite API を使用して削除できます。

コンソール

  1. Cloud Console で、[Lite サブスクリプション] ページに移動します。

    [Lite サブスクリプション] ページに移動

  2. [Lite サブスクリプション ID] をクリックします。

  3. [Lite サブスクリプションの詳細] ページで [削除] をクリックします。

  4. 表示されたダイアログで [削除] をクリックして、削除する Lite サブスクリプションの削除を確定します。

gcloud

Lite サブスクリプションを削除するには、gcloud beta pubsub lite-subscriptions delete コマンドを使用します。

  1. delete コマンドを実行します。

    gcloud beta pubsub lite-subscriptions delete SUBSCRIPTION_ID \
     --zone=ZONE
    

    以下を置き換えます。

    • SUBSCRIPTION_ID: Lite サブスクリプションの ID

    • ZONE: Lite サブスクリプションが含まれるゾーンの名前

  2. 確定するには「Y」と入力します。

リクエストが成功すると、コマンドラインに確認メッセージが表示されます。

Deleted subscription [SUBSCRIPTION_ID].

プロトコル

Lite トピックを削除するには、次のような DELETE リクエストを送信します。

DELETE https://REGION-pubsublite.googleapis.com/v1/admin/projects/PROJECT_NUMBER/locations/ZONE/subscriptions/SUBSCRIPTION_ID
Authorization: Bearer $(gcloud auth print-access-token)

以下を置き換えます。

  • REGION: Lite サブスクリプションを保存するゾーンのリージョン

  • PROJECT_NUMBER: Lite サブスクリプションを持つプロジェクトのプロジェクト番号

  • ZONE: Lite サブスクリプションが含まれるゾーンの名前

  • SUBSCRIPTION_ID: Lite サブスクリプションの ID

リクエストが成功した場合のレスポンスは空の JSON オブジェクトです。

Java

このサンプルを実行する前に、Pub/Sub Lite クライアント ライブラリの Java の設定手順を実施してください。

import com.google.cloud.pubsublite.AdminClient;
import com.google.cloud.pubsublite.AdminClientSettings;
import com.google.cloud.pubsublite.CloudRegion;
import com.google.cloud.pubsublite.CloudZone;
import com.google.cloud.pubsublite.ProjectNumber;
import com.google.cloud.pubsublite.SubscriptionName;
import com.google.cloud.pubsublite.SubscriptionPath;
import com.google.cloud.pubsublite.SubscriptionPaths;

public class DeleteSubscriptionExample {

  public static void main(String... args) throws Exception {
    // TODO(developer): Replace these variables before running the sample.
    String cloudRegion = "your-cloud-region";
    char zoneId = 'b';
    // Choose an existing subscription.
    String subscriptionId = "your-subscription-id";
    long projectNumber = Long.parseLong("123456789");

    deleteSubscriptionExample(cloudRegion, zoneId, projectNumber, subscriptionId);
  }

  public static void deleteSubscriptionExample(
      String cloudRegion, char zoneId, long projectNumber, String subscriptionId) throws Exception {

    SubscriptionPath subscriptionPath =
        SubscriptionPaths.newBuilder()
            .setZone(CloudZone.of(CloudRegion.of(cloudRegion), zoneId))
            .setProjectNumber(ProjectNumber.of(projectNumber))
            .setSubscriptionName(SubscriptionName.of(subscriptionId))
            .build();

    AdminClientSettings adminClientSettings =
        AdminClientSettings.newBuilder().setRegion(CloudRegion.of(cloudRegion)).build();

    try (AdminClient adminClient = AdminClient.create(adminClientSettings)) {
      adminClient.deleteSubscription(subscriptionPath).get();
      System.out.println(subscriptionPath.value() + " deleted successfully.");
    }
  }
}