Lite-Abos erstellen und verwalten

Auf dieser Seite wird erläutert, wie Sie Lite-Abos erstellen, ansehen und löschen.

Lite-Abos sind zonale Ressourcen, mit denen Abonnenten Nachrichten aus Lite-Themen lesen. Wenn Sie ein Lite-Abo erstellen, hängen Sie es an ein Lite-Thema an. Sie können einem Lite-Thema viele Lite-Abos hinzufügen.

Nachdem Sie ein Lite-Abo für ein Lite-Thema erstellt haben, können Sie Nachrichten vom Lite-Abo empfangen.

Lite-Abos erstellen

Ein Lite-Abo muss sich im selben Projekt und in derselben Zone wie das Lite-Thema befinden, mit dem das Lite-Abo verknüpft ist. Eine Liste der verfügbaren Zonen finden Sie unter Pub/Sub Lite-Standorte.

Sie können Lite-Abos mit der Cloud Console, dem gcloud-Befehlszeilentool oder der Pub/Sub Lite API erstellen.

Console

  1. Rufen Sie in der Cloud Console die Seite Lite-Abos auf.

    Zur Seite Lite-Abos

  2. Klicken Sie auf Lite-Abo erstellen.

  3. Geben Sie eine Lite-Abo-ID ein.

  4. Wählen Sie ein Lite-Thema aus, von dem Nachrichten empfangen werden sollen.

  5. Wählen Sie Nachrichten sofort senden oder Nachrichten nach dem Speichern senden aus.

  6. Klicken Sie auf Erstellen.

gcloud

Verwenden Sie den Befehl gcloud beta pubsub lite-subscriptions create, um ein Lite-Abo zu erstellen:

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

Dabei gilt:

  • SUBSCRIPTION_ID: die ID des Lite-Abos

  • ZONE: der Name einer von Pub/Sub Lite unterstützten Zone

  • TOPIC_ID: die ID des Lite-Themas, das an das Lite-Abo angehängt werden soll

  • DELIVERY_REQUIREMENT: deliver-after-stored oder deliver-immediately

Wenn die Anfrage erfolgreich ist, wird in der Befehlszeile eine Bestätigung angezeigt:

Created [SUBSCRIPTION_ID].

Protokoll

Senden Sie zum Erstellen eines Lite-Abos eine POST-Anfrage wie die folgende:

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

Dabei gilt:

  • REGION: die Region der Zone, in der das Lite-Abo gespeichert wird

  • PROJECT_NUMBER: Die Projektnummer des Projekts, in dem das Lite-Abo erstellt werden soll

  • ZONE: der Name einer von Pub/Sub Lite unterstützten Zone

  • SUBSCRIPTION_ID: die ID des Lite-Abos

Geben Sie im Anfragetext die folgenden Felder an:

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

Ersetzen Sie DELIVERY_REQUIREMENT durch deliver-after-stored oder deliver-immediately.

Wenn die Anfrage erfolgreich ist, ist die Antwort das Lite-Abo im JSON-Format:

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

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-Abos haben ein Attribut Sendeanforderung. Lite-Abonnements können Nachrichten sofort an Abonnenten senden, nachdem der Pub/Sub Lite-Dienst die Nachrichten erhalten hat oder erst, nachdem der Pub/Sub Lite-Dienst die Nachricht in einer Partition gespeichert hat.

Wenn die Zustellungsanfrage deliver-immediately lautet und der Pub/Sub Lite-Dienst keine Nachricht in den Speicher schreiben kann, gibt der Pub/Sub Lite-Dienst einen Fehler an den Publisher zurück, dessen Abonnenten die Nachricht jedoch möglicherweise trotzdem erhalten.

Lite-Abos aktualisieren

Sie können Lite-Abos mit der Cloud Console, dem gcloud-Befehlszeilentool oder der Pub/Sub Lite API aktualisieren.

Console

  1. Rufen Sie in der Cloud Console die Seite Lite-Abos auf.

    Zur Seite Lite-Abos

  2. Klicken Sie auf die Lite-Abo-ID.

  3. Klicken Sie auf der Seite Lite-Abonnementdetails auf Bearbeiten.

gcloud

Verwenden Sie zum Aktualisieren eines Lite-Abos den Befehl gcloud beta pubsub lite-subscriptions update:

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

Dabei gilt:

  • SUBSCRIPTION_ID: die ID des Lite-Abos

  • ZONE: der Name der Zone, in der sich das Lite-Abo befindet

  • DELIVERY_REQUIREMENT: deliver-after-stored oder deliver-immediately

Wenn die Anfrage erfolgreich ist, wird in der Befehlszeile das Lite-Abo angezeigt:

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

Protokoll

Um ein Lite-Abo zu aktualisieren, senden Sie eine PATCH-Anfrage wie die folgende:

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)

Dabei gilt:

  • REGION: die Region der Zone, in der das Lite-Abo gespeichert wird

  • PROJECT_NUMBER: die Projektnummer des Projekts mit dem Lite-Abo

  • ZONE: der Name der Zone, in der sich das Lite-Abo befindet

  • SUBSCRIPTION_ID: die ID des Lite-Abos

Geben Sie im Anfragetext die folgenden Felder an:

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

Ersetzen Sie DELIVERY_REQUIREMENT durch deliver-after-stored oder deliver-immediately.

Wenn die Anfrage erfolgreich ist, ist die Antwort das Lite-Abo im JSON-Format:

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

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 MASK =
        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, MASK).get();
      System.out.println("After update: " + subscriptionAfterUpdate.getAllFields());
    }
  }
}

Details zum Lite-Abo abrufen

Details zu einem Lite-Abo können Sie mit der Cloud Console, dem gcloud-Befehlszeilentool oder der Pub/Sub Lite API abrufen.

Console

  1. Rufen Sie in der Cloud Console die Seite Lite-Abos auf.

    Zur Seite Lite-Abos

  2. Klicken Sie auf die Lite-Abo-ID.

gcloud

Wenn Sie Details zu einem Lite-Abo abrufen möchten, verwenden Sie den Befehl gcloud beta pubsub lite-subscriptions describe:

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

Dabei gilt:

  • SUBSCRIPTION_ID: die ID des Lite-Abos

  • ZONE: der Name der Zone, in der sich das Lite-Abo befindet

Wenn die Anfrage erfolgreich ist, wird in der Befehlszeile das Lite-Thema angezeigt:

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

Protokoll

Wenn Sie Details zu einem Lite-Abo erhalten möchten, senden Sie eine GET-Anfrage wie die folgende:

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

Dabei gilt:

  • REGION: die Region der Zone, in der das Lite-Abo gespeichert wird

  • PROJECT_NUMBER: die Projektnummer des Projekts mit dem Lite-Abo

  • ZONE: der Name der Zone, in der sich das Lite-Abo befindet

  • SUBSCRIPTION_ID: die ID des Lite-Abos

Wenn die Anfrage erfolgreich ist, ist die Antwort das Lite-Thema im JSON-Format:

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

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-Abos auflisten

Sie können die Lite-Abos in einem Projekt oder die Lite-Abos für ein Lite-Thema auflisten.

Lite-Abos in einem Projekt auflisten

Sie können Lite-Abos in einem Projekt über die Cloud Console, das gcloud-Befehlszeilentool oder die Pub/Sub Lite API auflisten.

Console

Sie können eine Liste der Lite-Abos in einem Projekt auf der Seite Lite-Abos aufrufen.

gcloud

Verwenden Sie den Befehl gcloud beta pubsub lite-subscriptions list, um die Lite-Abos in einem Projekt aufzulisten:

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

Ersetzen Sie ZONE durch den Namen der Zone, in der sich die Lite-Abos befinden.

Wenn die Anfrage erfolgreich ist, werden in der Befehlszeile die Lite-Abos angezeigt:

---
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

Protokoll

Senden Sie eine GET-Anfrage wie die folgende, um die Lite-Abos in einem Projekt aufzulisten:

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

Dabei gilt:

  • REGION: die Region der Zone, in der das Lite-Abo gespeichert wird

  • PROJECT_NUMBER: die Projektnummer des Projekts mit dem Lite-Abo

Wenn die Anfrage erfolgreich ist, ist die Antwort das Lite-Thema im JSON-Format:

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

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-Abos für ein Lite-Thema auflisten

Sie können Lite-Abos für ein Lite-Thema über die Cloud Console, das gcloud-Befehlszeilentool oder die Pub/Sub Lite API auflisten.

Console

  1. Rufen Sie in der Cloud Console die Seite Lite-Themen auf.

    Zur Seite Lite-Themen

  2. Eine Lite-Themen-ID auswählen.

  3. Auf der Detailseite Lite-Themen enthält der Abschnitt Lite-Abos eine Liste der Lite-Abos für das Lite-Thema.

gcloud

Verwenden Sie den Befehl gcloud beta pubsub lite-topics list-subscriptions, um die Lite-Abos für ein Thema aufzulisten:

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

Dabei gilt:

  • TOPIC_ID: die ID des Lite-Themas, mit dem die Lite-Abos verknüpft sind

  • ZONE: der Name der Zone, in der sich das Lite-Abo befindet

Wenn die Anfrage erfolgreich ist, werden in der Befehlszeile die Lite-Abos angezeigt:

---
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

Protokoll

Um die Lite-Abos für ein Lite-Thema aufzulisten, senden Sie eine GET-Anfrage wie die folgende:

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

Dabei gilt:

  • REGION: die Region der Zone, in der das Lite-Abo gespeichert wird

  • PROJECT_NUMBER: die Projektnummer des Projekts mit dem Lite-Abo

  • ZONE: der Name der Zone, in der sich das Lite-Abo befindet

  • TOPIC_ID: die ID des Lite-Themas, mit dem die Lite-Abos verknüpft sind

Wenn die Anfrage erfolgreich ist, ist die Antwort eine Liste von Lite-Abos im JSON-Format:

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

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-Abos werden gelöscht

Sie können Lite-Abos mit der Cloud Console, dem gcloud-Befehlszeilentool oder der Pub/Sub Lite API löschen.

Console

  1. Rufen Sie in der Cloud Console die Seite Lite-Abos auf.

    Zur Seite Lite-Abos

  2. Klicken Sie auf die Lite-Abo-ID.

  3. Klicken Sie auf der Seite Lite-Abonnementdetails auf Löschen.

  4. Klicken Sie im angezeigten Dialogfeld auf Löschen, um zu bestätigen, dass Sie das Lite-Abo löschen möchten.

gcloud

Verwenden Sie zum Löschen eines Lite-Abos den Befehl gcloud beta pubsub lite-subscriptions delete:

  1. Führen Sie den Befehl delete aus:

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

    Dabei gilt:

    • SUBSCRIPTION_ID: die ID des Lite-Abos

    • ZONE: der Name der Zone, in der sich das Lite-Abo befindet

  2. Zum Bestätigen geben Sie "Y" ein.

Wenn die Anfrage erfolgreich ist, wird in der Befehlszeile eine Bestätigung angezeigt:

Deleted subscription [SUBSCRIPTION_ID].

Protokoll

Um ein Lite-Thema zu löschen, senden Sie eine DELETE-Anfrage wie die folgende:

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

Dabei gilt:

  • REGION: die Region der Zone, in der das Lite-Abo gespeichert wird

  • PROJECT_NUMBER: die Projektnummer des Projekts mit dem Lite-Abo

  • ZONE: der Name der Zone, in der sich das Lite-Abo befindet

  • SUBSCRIPTION_ID: die ID des Lite-Abos

Wenn die Anfrage erfolgreich ist, ist die Antwort ein leeres JSON-Objekt.

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.");
    }
  }
}