Créer et gérer des abonnements Lite

Cette page explique comment créer, afficher et supprimer des abonnements Lite.

Les abonnements Lite sont des ressources zonales utilisées par les abonnés pour lire les messages issus de sujets Lite. Lorsque vous créez un abonnement Lite, vous l'associez à un sujet Lite. Vous pouvez associer de nombreux abonnements Lite à un sujet Lite.

Après avoir créé un abonnement Lite associé à un sujet Lite, vous pouvez recevoir des messages depuis l'abonnement Lite.

Créer des abonnements Lite

Un abonnement Lite doit se trouver dans le même projet et la même zone que le sujet Lite auquel l'abonnement Lite est associé. Pour obtenir la liste des zones disponibles, consultez la section Emplacements Pub/Sub Lite.

Vous pouvez créer des abonnements Lite avec Cloud Console, l'outil de ligne de commande gcloud ou l'API Pub/Sub Lite.

Console

  1. Dans Cloud Console, accédez à la page Abonnements Lite.

    Accéder à la page "Abonnements Lite"

  2. Cliquez sur Créer un abonnement Lite.

  3. Saisissez un ID d'abonnement Lite.

  4. Choisissez un sujet Lite pour recevoir des messages de celui-ci

  5. Sélectionnez Distribuer les messages immédiatement ou Distribuer les messages après leur stockage.

  6. Cliquez sur Créer.

gcloud

Pour créer un abonnement Lite, exécutez la commande gcloud beta pubsub lite-subscriptions create :

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

Remplacez les éléments suivants :

  • SUBSCRIPTION_ID: ID de l'abonnement Lite

  • ZONE : le nom d'une zone compatible avec Pub/Sub Lite

  • TOPIC_ID: ID du sujet Lite à associer à l'abonnement Lite.

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

Si la requête aboutit, la ligne de commande affiche une confirmation :

Created [SUBSCRIPTION_ID].

Protocole

Pour créer un abonnement Lite, envoyez une requête POST comme suit :

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

Remplacez les éléments suivants :

Spécifiez les champs suivants dans le corps de la requête :

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

Remplacez DELIVERY_REQUIREMENT par deliver-after-stored ou deliver-immediately.

Si la requête aboutit, la réponse est l'abonnement Lite au format JSON :

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

Java

Avant d'exécuter cet exemple, suivez les instructions de configuration de Java dans la section Bibliothèques clientes de Pub/Sub Lite.

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

Les abonnements Lite comportent une condition de diffusion. Les abonnements Lite peuvent distribuer des messages aux abonnés immédiatement après que le service Pub/Sub Lite a reçu les messages, ou uniquement après que le service Pub/Sub Lite a stocké le message dans une partition.

Si l'exigence de distribution est deliver-immediately et que le service Pub/Sub Lite ne parvient pas à écrire un message dans l'espace de stockage, le service Pub/Sub Lite renvoie une erreur à l'éditeur, mais les abonnés peuvent toujours recevoir le message.

Mettre à jour des abonnements Lite

Vous pouvez mettre à jour des abonnements Lite avec Cloud Console, l'outil de ligne de commande gcloud ou l'API Pub/Sub Lite.

Console

  1. Dans Cloud Console, accédez à la page Abonnements Lite.

    Accéder à la page "Abonnements Lite"

  2. Cliquez sur l'ID d'abonnement Lite.

  3. Sur la page Détails de l'abonnement Lite, cliquez sur Modifier.

gcloud

Pour mettre à jour un abonnement Lite, exécutez la commande gcloud beta pubsub lite-subscriptions update :

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

Remplacez les éléments suivants :

  • SUBSCRIPTION_ID: ID de l'abonnement Lite

  • ZONE: nom de la zone dans laquelle l'abonnement Lite se trouve

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

Si la requête aboutit, la ligne de commande affiche l'abonnement Lite :

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

Protocole

Pour mettre à jour un abonnement Lite, envoyez une requête PATCH comme suit :

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)

Remplacez les éléments suivants :

  • REGION : région de la zone dans laquelle stocker l'abonnement Lite

  • PROJECT_NUMBER: numéro du projet associé à l'abonnement Lite

  • ZONE: nom de la zone dans laquelle l'abonnement Lite se trouve

  • SUBSCRIPTION_ID: ID de l'abonnement Lite

Spécifiez les champs suivants dans le corps de la requête :

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

Remplacez DELIVERY_REQUIREMENT par deliver-after-stored ou deliver-immediately.

Si la requête aboutit, la réponse est l'abonnement Lite au format JSON :

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

Java

Avant d'exécuter cet exemple, suivez les instructions de configuration de Java dans la section Bibliothèques clientes de Pub/Sub Lite.

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());
    }
  }
}

Obtenir les détails de l'abonnement Lite

Vous pouvez obtenir des détails sur un abonnement Lite à l'aide de Cloud Console, de l'outil de ligne de commande gcloud ou de l'API Pub/Sub Lite.

Console

  1. Dans Cloud Console, accédez à la page Abonnements Lite.

    Accéder à la page "Abonnements Lite"

  2. Cliquez sur l'ID d'abonnement Lite.

gcloud

Pour obtenir des détails sur un abonnement Lite, utilisez la commande gcloud beta pubsub lite-subscriptions describe:

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

Remplacez les éléments suivants :

  • SUBSCRIPTION_ID: ID de l'abonnement Lite

  • ZONE: nom de la zone dans laquelle l'abonnement Lite se trouve

Si la requête aboutit, la ligne de commande affiche le sujet Lite:

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

Protocole

Pour obtenir des détails sur un abonnement Lite, envoyez une requête GET comme suit :

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

Remplacez les éléments suivants :

  • REGION : région de la zone dans laquelle stocker l'abonnement Lite

  • PROJECT_NUMBER: numéro du projet associé à l'abonnement Lite

  • ZONE: nom de la zone dans laquelle l'abonnement Lite se trouve

  • SUBSCRIPTION_ID: ID de l'abonnement Lite

Si la requête aboutit, la réponse est le sujet Lite au format JSON:

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

Java

Avant d'exécuter cet exemple, suivez les instructions de configuration de Java dans la section Bibliothèques clientes de Pub/Sub Lite.

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());
    }
  }
}

Répertorier les abonnements Lite

Vous pouvez répertorier les abonnements Lite d'un projet ou les abonnements Lite associés à un sujet Lite.

Répertorier les abonnements Lite dans un projet

Vous pouvez répertorier les abonnements Lite dans un projet à l'aide de Cloud Console, de l'outil de ligne de commande gcloud ou de l'API Pub/Sub Lite.

Console

Pour afficher la liste des abonnements Lite dans un projet, accédez à la page Abonnements Lite.

gcloud

Pour répertorier les abonnements Lite d'un projet, exécutez la commande gcloud beta pubsub lite-subscriptions list :

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

Remplacez ZONE par le nom de la zone dans laquelle se trouvent les abonnements Lite.

Si la requête aboutit, la ligne de commande affiche les abonnements 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

Protocole

Pour répertorier les abonnements Lite d'un projet, envoyez une requête GET comme suit :

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

Remplacez les éléments suivants :

  • REGION : région de la zone dans laquelle stocker l'abonnement Lite

  • PROJECT_NUMBER: numéro du projet associé à l'abonnement Lite

Si la requête aboutit, la réponse est le sujet Lite au format JSON:

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

Java

Avant d'exécuter cet exemple, suivez les instructions de configuration de Java dans la section Bibliothèques clientes de Pub/Sub Lite.

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

Répertorier les abonnements Lite associés à un sujet Lite

Vous pouvez répertorier les abonnements Lite asociés à un sujet Lite à l'aide de Cloud Console, de l'outil de ligne de commande gcloud ou de l'API Pub/Sub Lite.

Console

  1. Dans Cloud Console, accédez à la page Sujets Lite.

    Accéder à la page Sujets Lite

  2. Sélectionnez un ID de sujet Lite.

  3. Sur la page de détails des sujets Lite, la section Abonnements Lite inclut une liste des abonnements Lite au sujet Lite.

gcloud

Pour répertorier les abonnements Lite à un sujet, utilisez la commande gcloud beta pubsub lite-topics list-subscriptions:

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

Remplacez les éléments suivants :

  • TOPIC_ID: ID du sujet Lite auquel les abonnements Lite sont associés.

  • ZONE: nom de la zone dans laquelle l'abonnement Lite se trouve

Si la requête aboutit, la ligne de commande affiche les abonnements 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

Protocole

Pour répertorier les abonnements Lite à un sujet Lite, envoyez une requête GET comme suit :

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

Remplacez les éléments suivants :

  • REGION : région de la zone dans laquelle stocker l'abonnement Lite

  • PROJECT_NUMBER: numéro du projet associé à l'abonnement Lite

  • ZONE: nom de la zone dans laquelle l'abonnement Lite se trouve

  • TOPIC_ID: ID du sujet Lite auquel les abonnements Lite sont associés.

Si la requête aboutit, la réponse est une liste d'abonnements Lite au format JSON :

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

Java

Avant d'exécuter cet exemple, suivez les instructions de configuration de Java dans la section Bibliothèques clientes de Pub/Sub Lite.

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

Suppression d'abonnements Lite

Vous pouvez supprimer des abonnements Lite à l'aide de Cloud Console, de l'outil de ligne de commande gcloud ou de l'API Pub/Sub Lite.

Console

  1. Dans Cloud Console, accédez à la page Abonnements Lite.

    Accéder à la page "Abonnements Lite"

  2. Cliquez sur l'ID d'abonnement Lite.

  3. Sur la page Informations sur l'abonnement Lite, cliquez sur Supprimer.

  4. Dans la boîte de dialogue qui s'affiche, cliquez sur Supprimer pour confirmer que vous souhaitez supprimer l'abonnement Lite.

gcloud

Pour supprimer un abonnement Lite, exécutez la commande gcloud beta pubsub lite-subscriptions delete :

  1. Exécutez la commande delete :

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

    Remplacez les éléments suivants :

    • SUBSCRIPTION_ID: ID de l'abonnement Lite

    • ZONE: nom de la zone dans laquelle l'abonnement Lite se trouve

  2. Pour confirmer, saisissez Y.

Si la requête aboutit, la ligne de commande affiche une confirmation :

Deleted subscription [SUBSCRIPTION_ID].

Protocole

Pour supprimer un sujet Lite, envoyez une requête DELETE comme suit:

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

Remplacez les éléments suivants :

  • REGION : région de la zone dans laquelle stocker l'abonnement Lite

  • PROJECT_NUMBER: numéro du projet associé à l'abonnement Lite

  • ZONE: nom de la zone dans laquelle l'abonnement Lite se trouve

  • SUBSCRIPTION_ID: ID de l'abonnement Lite

Si la requête aboutit, la réponse est un objet JSON vide.

Java

Avant d'exécuter cet exemple, suivez les instructions de configuration de Java dans la section Bibliothèques clientes de Pub/Sub Lite.

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