Crea y administra suscripciones Lite

En esta página, se explica cómo crear, ver y borrar suscripciones Lite.

Las suscripciones Lite son recursos zonales que los suscriptores usan para leer mensajes de temas Lite. Cuando creas una suscripción Lite, la adjuntas a un tema de Lite. Puedes adjuntar muchas suscripciones de Lite a un tema de Lite.

Después de crear una suscripción Lite a un tema Lite, puedes recibir mensajes de la suscripción Lite.

Crea suscripciones Lite

Una suscripción Lite debe estar en el mismo proyecto y zona que el tema Lite al que está vinculada la suscripción Lite. Para obtener una lista de las zonas disponibles, consulta Ubicaciones de Pub/Sub Lite.

Puedes crear suscripciones Lite con Cloud Console, la herramienta de línea de comandos de gcloud o la API de Pub/Sub Lite.

Console

  1. En Cloud Console, ve a la página Suscripciones Lite.

    Ir a la página de Suscripciones Lite

  2. Haz clic en Crear suscripción Lite.

  3. Ingresa un ID de suscripción Lite.

  4. Elige un tema Lite para recibir mensajes.

  5. Elige Enviar mensajes de inmediato o Enviar mensajes después de almacenarlos.

  6. Haga clic en Crear.

gcloud

Para crear una suscripción Lite, usa el comando gcloud beta pubsub lite-subscriptions create:

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

Reemplaza lo siguiente:

  • SUBSCRIPTION_ID: Es el ID de la suscripción Lite.

  • ZONE: Es el nombre de una zona compatible con Pub/Sub Lite

  • TOPIC_ID: Es el ID del tema Lite para adjuntar a la suscripción Lite

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

Si la solicitud es exitosa, la línea de comandos muestra una confirmación:

Created [SUBSCRIPTION_ID].

Protocolo

Para crear una suscripción Lite, envía una solicitud POST como la siguiente:

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

Reemplaza lo siguiente:

  • REGION: Es la región de la zona en la que se almacenará la suscripción de Lite.

  • PROJECT_NUMBER: Es el número de proyecto del proyecto para crear la suscripción básica

  • ZONE: Es el nombre de una zona compatible con Pub/Sub Lite

  • SUBSCRIPTION_ID: Es el ID de la suscripción Lite.

Especifica los siguientes campos en el cuerpo de la solicitud:

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

Reemplaza DELIVERY_REQUIREMENT por deliver-after-stored o deliver-immediately.

Si la solicitud es exitosa, la respuesta es la suscripción Lite en formato JSON:

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

Java

Antes de ejecutar esta muestra, sigue las instrucciones de configuración de Java en las bibliotecas cliente 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.");
    }
  }
}

Las suscripciones Lite tienen una propiedad de requisito de publicación. Las suscripciones Lite pueden entregar mensajes a los suscriptores inmediatamente después de que el servicio Pub/Sub Lite recibe los mensajes o solo después de que el servicio Pub/Sub Lite almacena el mensaje en una partición.

Si el requisito de entrega es deliver-immediately y el servicio de Pub/Sub Lite no escribe un mensaje para almacenar, el servicio de Pub/Sub Lite le mostrará un error al publicador, pero es posible que los suscriptores aún lo reciban en el mensaje.

Actualizar las suscripciones Lite

Puedes actualizar las suscripciones Lite con Cloud Console, la herramienta de línea de comandos de gcloud o la API de Pub/Sub Lite.

Console

  1. En Cloud Console, ve a la página Suscripciones Lite.

    Ir a la página de Suscripciones Lite

  2. Haz clic en el ID de suscripción Lite.

  3. En la página Detalles de la suscripción Lite, haz clic en Editar.

gcloud

Para actualizar una suscripción Lite, usa el comando gcloud beta pubsub lite-subscriptions update:

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

Reemplaza lo siguiente:

  • SUBSCRIPTION_ID: Es el ID de la suscripción Lite.

  • ZONE: Es el nombre de la zona en la que se encuentra la suscripción Lite.

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

Si la solicitud es exitosa, la línea de comandos muestra el tema de Lite:

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

Protocolo

Para actualizar una suscripción Lite, envía una solicitud PATCH como la siguiente:

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)

Reemplaza lo siguiente:

  • REGION: Es la región de la zona en la que se almacenará la suscripción de Lite.

  • PROJECT_NUMBER: Es el número de proyecto con la suscripción Lite.

  • ZONE: Es el nombre de la zona en la que se encuentra la suscripción Lite.

  • SUBSCRIPTION_ID: Es el ID de la suscripción Lite.

Especifica los siguientes campos en el cuerpo de la solicitud:

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

Reemplaza DELIVERY_REQUIREMENT por deliver-after-stored o deliver-immediately.

Si la solicitud es exitosa, la respuesta es la suscripción Lite en formato JSON:

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

Java

Antes de ejecutar esta muestra, sigue las instrucciones de configuración de Java en las bibliotecas cliente 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());
    }
  }
}

Obtén detalles de la suscripción Lite

Puedes obtener detalles sobre una suscripción Lite con Cloud Console, la herramienta de línea de comandos de gcloud o la API de Pub/Sub Lite.

Console

  1. En Cloud Console, ve a la página Suscripciones Lite.

    Ir a la página de Suscripciones Lite

  2. Haz clic en el ID de suscripción Lite.

gcloud

Para obtener detalles sobre una suscripción Lite, usa el comando gcloud beta pubsub lite-subscriptions describe:

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

Reemplaza lo siguiente:

  • SUBSCRIPTION_ID: Es el ID de la suscripción Lite.

  • ZONE: Es el nombre de la zona en la que se encuentra la suscripción Lite.

Si la solicitud es exitosa, la línea de comandos muestra el tema de Lite:

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

Protocolo

Para obtener detalles sobre una suscripción Lite, envía una solicitud GET como la siguiente:

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

Reemplaza lo siguiente:

  • REGION: Es la región de la zona en la que se almacenará la suscripción de Lite.

  • PROJECT_NUMBER: Es el número de proyecto del proyecto con la suscripción Lite.

  • ZONE: Es el nombre de la zona en la que se encuentra la suscripción Lite.

  • SUBSCRIPTION_ID: Es el ID de la suscripción Lite.

Si la solicitud se realiza correctamente, la respuesta es el tema de Lite en formato JSON:

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

Java

Antes de ejecutar esta muestra, sigue las instrucciones de configuración de Java en las bibliotecas cliente 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());
    }
  }
}

Lista de suscripciones Lite

Puedes enumerar las suscripciones Lite en un proyecto o las suscripciones Lite a un tema Lite.

Enumera una lista de las suscripciones Lite en un proyecto

Puedes enumerar las suscripciones Lite en un proyecto con Cloud Console, la herramienta de línea de comandos de gcloud o la API de Pub/Sub Lite.

Console

Para ver una lista de las suscripciones Lite en un proyecto, ve a la página Suscripciones Lite.

gcloud

Para mostrar una lista de las suscripciones Lite en un proyecto, usa el comando gcloud beta pubsub lite-subscriptions list:

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

Reemplaza ZONE por el nombre de la zona en la que se encuentran las suscripciones Lite.

Si la solicitud es exitosa, la línea de comandos muestra las subscripciones 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

Protocolo

Para enumerar las suscripciones Lite en un proyecto, envía una solicitud GET como la siguiente:

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

Reemplaza lo siguiente:

  • REGION: Es la región de la zona en la que se almacenará la suscripción de Lite.

  • PROJECT_NUMBER: Es el número de proyecto con la suscripción Lite.

Si la solicitud se realiza correctamente, la respuesta es el tema de Lite en formato JSON:

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

Java

Antes de ejecutar esta muestra, sigue las instrucciones de configuración de Java en las bibliotecas cliente 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.");
    }
  }
}

Enumera suscripciones Lite a un tema Lite

Puedes enumerar las suscripciones Lite a un tema Lite con Cloud Console, la herramienta de línea de comandos de gcloud o la API de Pub/Sub Lite.

Console

  1. En Cloud Console, ve a la página Temas de Lite.

    Ir a la página Temas Lite

  2. Selecciona un ID del tema Lite.

  3. En la página de detalles de temas Lite, la sección Suscripciones Lite incluye una lista de suscripciones Lite al tema Lite.

gcloud

Para enumerar las suscripciones Lite a un tema, usa el comando gcloud beta pubsub lite-topics list-subscriptions:

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

Reemplaza lo siguiente:

  • TOPIC_ID: Es el ID del tema Lite al que se vinculan las suscripciones Lite.

  • ZONE: Es el nombre de la zona en la que se encuentra la suscripción Lite.

Si la solicitud es exitosa, la línea de comandos muestra las subscripciones 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

Protocolo

Para enumerar las suscripciones a un tema Lite, envía una solicitud GET como la siguiente:

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

Reemplaza lo siguiente:

  • REGION: Es la región de la zona en la que se almacenará la suscripción de Lite.

  • PROJECT_NUMBER: Es el número de proyecto con la suscripción Lite.

  • ZONE: Es el nombre de la zona en la que se encuentra la suscripción Lite.

  • TOPIC_ID: Es el ID del tema Lite al que se vinculan las suscripciones Lite.

Si la solicitud se realiza de forma correcta, la respuesta es una lista de suscripciones Lite en formato JSON:

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

Java

Antes de ejecutar esta muestra, sigue las instrucciones de configuración de Java en las bibliotecas cliente 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.");
    }
  }
}

Borra suscripciones Lite

Puedes borrar suscripciones Lite con Cloud Console, la herramienta de línea de comandos de gcloud o la API de Pub/Sub Lite.

Console

  1. En Cloud Console, ve a la página Suscripciones Lite.

    Ir a la página de Suscripciones Lite

  2. Haz clic en el ID de suscripción Lite.

  3. En la página Detalles de la suscripción Lite, haz clic en Borrar.

  4. En el cuadro de diálogo que aparece, haz clic en Borrar para confirmar que deseas borrar la suscripción Lite.

gcloud

Para borrar una suscripción Lite, usa el comando gcloud beta pubsub lite-subscriptions delete:

  1. Ejecuta el comando delete:

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

    Reemplaza lo siguiente:

    • SUBSCRIPTION_ID: Es el ID de la suscripción Lite.

    • ZONE: Es el nombre de la zona en la que se encuentra la suscripción Lite.

  2. Para confirmar, ingresa Y.

Si la solicitud es exitosa, la línea de comandos muestra una confirmación:

Deleted subscription [SUBSCRIPTION_ID].

Protocolo

Para borrar un tema Lite, envía una solicitud DELETE como la siguiente:

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

Reemplaza lo siguiente:

  • REGION: Es la región de la zona en la que se almacenará la suscripción de Lite.

  • PROJECT_NUMBER: Es el número de proyecto con la suscripción Lite.

  • ZONE: Es el nombre de la zona en la que se encuentra la suscripción Lite.

  • SUBSCRIPTION_ID: Es el ID de la suscripción Lite.

Si la solicitud es exitosa, la respuesta es un objeto JSON vacío.

Java

Antes de ejecutar esta muestra, sigue las instrucciones de configuración de Java en las bibliotecas cliente 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.");
    }
  }
}