Themen und Abos verwalten

In diesem Dokument erfahren Sie mehr über das Erstellen, Löschen und Verwalten von Cloud Pub/Sub-Themen und -Abonnements. Weitere Informationen über den Zugriff auf Nachrichtendaten und deren Veröffentlichung finden Sie im Publisher-Leitfaden und in der Abonnentenübersicht.

Themen verwalten

Sie können Themen mit der API, der GCP Console oder dem gcloud-Befehlszeilentool erstellen, löschen und aufrufen. Eine vollständige Liste der gcloud-Befehle für die Cloud Pub/Sub API finden Sie in der gcloud pubsub-Referenz.

Die Schnellstart-Anleitung zur GCP Console enthält eine Einführung in die GCP Console.

Thema erstellen

Bevor Sie ein Thema veröffentlichen oder abonnieren können, müssen Sie es zuerst erstellen. Hier ein Beispiel für das Erstellen eines Themas:

Protokoll

Anfrage:

PUT https://pubsub.googleapis.com/v1/projects/myproject/topics/mytopic

Antwort:

200 OK
{
 "name": "projects/myproject/topics/mytopic"
}

Befehlszeile

  gcloud pubsub topics create myTopic

C#

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von C#, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub C# API.

            PublisherServiceApiClient publisher = PublisherServiceApiClient.Create();

            TopicName topicName = new TopicName(projectId, topicId);
            try
            {
                publisher.CreateTopic(topicName);
            }
            catch (RpcException e)
            when (e.Status.StatusCode == StatusCode.AlreadyExists)
            {
                // Already exists.  That's fine.
            }

Go

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Go, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Go API.

t, err := client.CreateTopic(ctx, topic)
if err != nil {
	return err
}
fmt.Printf("Topic created: %v\n", t)

Java

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Java, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Java API.

try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) {
  // projectId <=  unique project identifier, eg. "my-project-id"
  // topicId <= "my-topic-id"
  ProjectTopicName topicName = ProjectTopicName.of(projectId, topicId);
  Topic topic = topicAdminClient.createTopic(topicName);
  return topic;
}

Node.js

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Node.js, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Node.js API.

// Imports the Google Cloud client library
const {PubSub} = require('@google-cloud/pubsub');

// Creates a client
const pubsub = new PubSub();

/**
 * TODO(developer): Uncomment the following line to run the sample.
 */
// const topicName = 'my-topic';

// Creates a new topic
await pubsub.createTopic(topicName);
console.log(`Topic ${topicName} created.`);

PHP

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von PHP, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub PHP API.

use Google\Cloud\PubSub\PubSubClient;

/**
 * Creates a Pub/Sub topic.
 *
 * @param string $projectId  The Google project ID.
 * @param string $topicName  The Pub/Sub topic name.
 */
function create_topic($projectId, $topicName)
{
    $pubsub = new PubSubClient([
        'projectId' => $projectId,
    ]);
    $topic = $pubsub->createTopic($topicName);

    printf('Topic created: %s' . PHP_EOL, $topic->name());
}

Python

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Python, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Python API.

from google.cloud import pubsub_v1

# TODO project_id = "Your Google Cloud Project ID"
# TODO topic_name = "Your Pub/Sub topic name"

publisher = pubsub_v1.PublisherClient()
topic_path = publisher.topic_path(project_id, topic_name)

topic = publisher.create_topic(topic_path)

print('Topic created: {}'.format(topic))

Ruby

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Ruby, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Ruby API.

# project_id = "Your Google Cloud Project ID"
# topic_name = "Your Pubsub topic name"
require "google/cloud/pubsub"

pubsub = Google::Cloud::Pubsub.new project: project_id

topic  = pubsub.create_topic topic_name

puts "Topic #{topic.name} created."

Thema löschen

Hier ein Beispiel für das Löschen eines Themas:

Protokoll

Anfrage:

DELETE https://pubsub.googleapis.com/v1/projects/myproject/topics/mytopic

Antwort:

200 OK
{
 "name": "projects/myproject/topics/mytopic"
}

GCLOUD-BEFEHL

  gcloud pubsub topics delete myTopic

C#

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von C#, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub C# API.

PublisherServiceApiClient publisher = PublisherServiceApiClient.Create();
TopicName topicName = new TopicName(projectId, topicId);
publisher.DeleteTopic(topicName);
Console.WriteLine("Topic deleted.");

Go

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Go, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Go API.

t := client.Topic(topic)
if err := t.Delete(ctx); err != nil {
	return err
}
fmt.Printf("Deleted topic: %v\n", t)

Java

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Java, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Java API.

try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) {
  ProjectTopicName topicName = ProjectTopicName.of(projectId, topicId);
  topicAdminClient.deleteTopic(topicName);
  return topicName;
}

Node.js

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Node.js, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Node.js API.

// Imports the Google Cloud client library
const {PubSub} = require('@google-cloud/pubsub');

// Creates a client
const pubsub = new PubSub();

/**
 * TODO(developer): Uncomment the following line to run the sample.
 */
// const topicName = 'my-topic';

// Deletes the topic
await pubsub.topic(topicName).delete();
console.log(`Topic ${topicName} deleted.`);

PHP

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von PHP, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub PHP API.

use Google\Cloud\PubSub\PubSubClient;

/**
 * Creates a Pub/Sub topic.
 *
 * @param string $projectId  The Google project ID.
 * @param string $topicName  The Pub/Sub topic name.
 */
function delete_topic($projectId, $topicName)
{
    $pubsub = new PubSubClient([
        'projectId' => $projectId,
    ]);
    $topic = $pubsub->topic($topicName);
    $topic->delete();

    printf('Topic deleted: %s' . PHP_EOL, $topic->name());
}

Python

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Python, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Python API.

from google.cloud import pubsub_v1

# TODO project_id = "Your Google Cloud Project ID"
# TODO topic_name = "Your Pub/Sub topic name"

publisher = pubsub_v1.PublisherClient()
topic_path = publisher.topic_path(project_id, topic_name)

publisher.delete_topic(topic_path)

print('Topic deleted: {}'.format(topic_path))

Ruby

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Ruby, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Ruby API.

# project_id = "Your Google Cloud Project ID"
# topic_name = "Your Pubsub topic name"
require "google/cloud/pubsub"

pubsub = Google::Cloud::Pubsub.new project: project_id

topic = pubsub.topic topic_name
topic.delete

puts "Topic #{topic_name} deleted."

Wenn Sie ein Thema löschen, werden dessen Abos nicht gelöscht und der Nachrichtenrückstand des Abos ist für Abonnenten weiterhin verfügbar. Nachdem ein Thema gelöscht wurde, haben seine Abos den Themennamen _deleted-topic_. Wenn Sie ein Thema erstellen, das denselben Namen hat wie ein gerade gelöschtes Thema, erhalten Sie nach dem Löschvorgang für kurze Zeit eine Fehlermeldung.

Themen auflisten

Hier ein Beispiel für das Abrufen einer Themenliste:

Protokoll

Anfrage:

GET https://pubsub.googleapis.com/v1/projects/myproject/topics

Antwort:

200 OK
{
  "topics": [
    {
      "name": "projects/myproject/topics/mytopic1"
    },
    {
      "name": "projects/myproject/topics/mytopic2"
    }
  ]
}

GCLOUD-BEFEHL

   gcloud pubsub topics list

C#

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von C#, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub C# API.

ProjectName projectName = new ProjectName(projectId);
IEnumerable<Topic> topics = publisher.ListTopics(projectName);
foreach (Topic topic in topics)
{
    Console.WriteLine($"{topic.Name}");
}

Go

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Go, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Go API.

var topics []*pubsub.Topic

it := client.Topics(ctx)
for {
	topic, err := it.Next()
	if err == iterator.Done {
		break
	}
	if err != nil {
		return nil, err
	}
	topics = append(topics, topic)
}

return topics, nil

Java

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Java, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Java API.

try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) {
  ListTopicsRequest listTopicsRequest =
      ListTopicsRequest.newBuilder().setProject(ProjectName.format(projectId)).build();
  ListTopicsPagedResponse response = topicAdminClient.listTopics(listTopicsRequest);
  Iterable<Topic> topics = response.iterateAll();
  for (Topic topic : topics) {
    // do something with the topic
  }
  return response;
}

Node.js

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Node.js, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Node.js API.

// Imports the Google Cloud client library
const {PubSub} = require('@google-cloud/pubsub');

// Creates a client
const pubsub = new PubSub();

// Lists all topics in the current project
const [topics] = await pubsub.getTopics();
console.log('Topics:');
topics.forEach(topic => console.log(topic.name));

PHP

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von PHP, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub PHP API.

use Google\Cloud\PubSub\PubSubClient;

/**
 * Lists all Pub/Sub topics.
 *
 * @param string $projectId  The Google project ID.
 */
function list_topics($projectId)
{
    $pubsub = new PubSubClient([
        'projectId' => $projectId,
    ]);
    foreach ($pubsub->topics() as $topic) {
        printf('Topic: %s' . PHP_EOL, $topic->name());
    }
}

Python

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Python, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Python API.

from google.cloud import pubsub_v1

# TODO project_id = "Your Google Cloud Project ID"

publisher = pubsub_v1.PublisherClient()
project_path = publisher.project_path(project_id)

for topic in publisher.list_topics(project_path):
    print(topic)

Ruby

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Ruby, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Ruby API.

# project_id = "Your Google Cloud Project ID"
require "google/cloud/pubsub"

pubsub = Google::Cloud::Pubsub.new project: project_id

topics = pubsub.topics

puts "Topics in project:"
topics.each do |topic|
  puts topic.name
end
Standardmäßig werden maximal 100 Ergebnisse pro Abfrage zurückgegeben. Mit dem Parameter für die Seitengröße können Sie einen Alternativwert von bis zu 1.000 angeben.

Abos verwalten

In diesem Abschnitt wird beschrieben, wie Push- und Pull-Abos verwaltet werden. In der Abonnentenübersicht finden Sie einen vergleichenden Überblick über Pull- und Push-Abos.

Bevor Abonnenten Nachrichten empfangen können, die in einem Thema veröffentlicht wurden, müssen Sie für das Thema ein Abo erstellen.

Für Abonnentenbefehle wird auch auf die gcloud-Referenz verwiesen.

Abos verfügen über mehrere Eigenschaften, die zum Zeitpunkt der Erstellung festgelegt oder später aktualisiert werden können, darunter die:

  • Zustellungsmethode: Standardmäßig wird für Cloud Pub/Sub-Abos die Pull-Methode verwendet. Sie können zur Push-Zustellung wechseln, indem Sie eine nicht leere, gültige HTTPS-Push-Endpunkt-URL festlegen. Durch Angabe einer leeren URL wechseln Sie zurück zur Pull-Zustellung.

  • Bestätigungsfrist: Nachrichten, die vor Ablauf der Frist vom Code nicht bestätigt werden, werden noch einmal gesendet. Der Standardwert beträgt 10 Sekunden. Sie können maximal 600 Sekunden (10 Minuten) als Bestätigungsfrist festlegen.

Protokoll

Anfrage:

PUT https://pubsub.googleapis.com/v1/projects/myproject/subscriptions/mysubscription
{
  "topic": "projects/someproject/topics/sometopic"
  // Only needed if you are using push delivery
  "pushConfig": {
    "pushEndpoint": "https://myproject.appspot.com/myhandler"
  }
}

Antwort:

200 OK
{
  "name": "projects/myproject/subscriptions/mysubscription",
  "topic": "projects/someproject/topics/sometopic",
  "pushConfig": {
    "pushEndpoint": "https://myproject.appspot.com/myhandler"
  },
  "ackDeadlineSeconds": 10
}

GCLOUD-BEFEHL

   gcloud pubsub subscriptions create mySubscription --topic myTopic

C#

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von C#, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub C# API.

SubscriberServiceApiClient subscriber = SubscriberServiceApiClient.Create();
TopicName topicName = new TopicName(projectId, topicId);
SubscriptionName subscriptionName = new SubscriptionName(projectId,
    subscriptionId);
try
{
    Subscription subscription = subscriber.CreateSubscription(
        subscriptionName, topicName, pushConfig: null,
        ackDeadlineSeconds: 60);
}
catch (RpcException e)
when (e.Status.StatusCode == StatusCode.AlreadyExists)
{
    // Already exists.  That's fine.
}

Go

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Go, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Go API.

sub, err := client.CreateSubscription(ctx, subName, pubsub.SubscriptionConfig{
	Topic:       topic,
	AckDeadline: 20 * time.Second,
})
if err != nil {
	return err
}
fmt.Printf("Created subscription: %v\n", sub)

Java

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Java, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Java API.

try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) {
  // eg. projectId = "my-test-project", topicId = "my-test-topic"
  ProjectTopicName topicName = ProjectTopicName.of(projectId, topicId);
  // eg. subscriptionId = "my-test-subscription"
  ProjectSubscriptionName subscriptionName =
      ProjectSubscriptionName.of(projectId, subscriptionId);
  // create a pull subscription with default acknowledgement deadline
  Subscription subscription =
      subscriptionAdminClient.createSubscription(
          subscriptionName, topicName, PushConfig.getDefaultInstance(), 0);
  return subscription;
}

Node.js

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Node.js, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Node.js API.

// Imports the Google Cloud client library
const {PubSub} = require('@google-cloud/pubsub');

// Creates a client
const pubsub = new PubSub();

/**
 * TODO(developer): Uncomment the following lines to run the sample.
 */
// const topicName = 'my-topic';
// const subscriptionName = 'my-sub';

// Creates a new subscription
await pubsub.topic(topicName).createSubscription(subscriptionName);
console.log(`Subscription ${subscriptionName} created.`);

PHP

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von PHP, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub PHP API.

use Google\Cloud\PubSub\PubSubClient;

/**
 * Creates a Pub/Sub subscription.
 *
 * @param string $projectId  The Google project ID.
 * @param string $topicName  The Pub/Sub topic name.
 * @param string $subscriptionName  The Pub/Sub subscription name.
 */
function create_subscription($projectId, $topicName, $subscriptionName)
{
    $pubsub = new PubSubClient([
        'projectId' => $projectId,
    ]);
    $topic = $pubsub->topic($topicName);
    $subscription = $topic->subscription($subscriptionName);
    $subscription->create();

    printf('Subscription created: %s' . PHP_EOL, $subscription->name());
}

Python

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Python, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Python API.

from google.cloud import pubsub_v1

# TODO project_id = "Your Google Cloud Project ID"
# TODO topic_name = "Your Pub/Sub topic name"
# TODO subscription_name = "Your Pub/Sub subscription name"

subscriber = pubsub_v1.SubscriberClient()
topic_path = subscriber.topic_path(project_id, topic_name)
subscription_path = subscriber.subscription_path(
    project_id, subscription_name)

subscription = subscriber.create_subscription(
    subscription_path, topic_path)

print('Subscription created: {}'.format(subscription))

Ruby

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Ruby, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Ruby API.

# project_id        = "Your Google Cloud Project ID"
# topic_name        = "Your Pubsub topic name"
# subscription_name = "Your Pubsub subscription name"
require "google/cloud/pubsub"

pubsub = Google::Cloud::Pubsub.new project: project_id

topic        = pubsub.topic topic_name
subscription = topic.subscribe subscription_name

puts "Pull subscription #{subscription_name} created."

Sie können Push-Abos erstellen, indem Sie eine HTTP-Endpunkt-URL angeben, wie in diesen Beispielen dargestellt:

GCLOUD-BEFEHL

   gcloud pubsub subscriptions create mySubscription --topic myTopic --push-endpoint="https://myapp.appspot.com/push"

Go

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Go, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Go API.

// For example, endpoint is "https://my-test-project.appspot.com/push".
sub, err := client.CreateSubscription(ctx, subName, pubsub.SubscriptionConfig{
	Topic:       topic,
	AckDeadline: 10 * time.Second,
	PushConfig:  pubsub.PushConfig{Endpoint: endpoint},
})
if err != nil {
	return err
}
fmt.Printf("Created subscription: %v\n", sub)

Java

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Java, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Java API.

try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) {
  ProjectTopicName topicName = ProjectTopicName.of(projectId, topicId);
  ProjectSubscriptionName subscriptionName =
      ProjectSubscriptionName.of(projectId, subscriptionId);

  // eg. endpoint = "https://my-test-project.appspot.com/push"
  PushConfig pushConfig = PushConfig.newBuilder().setPushEndpoint(endpoint).build();

  // acknowledgement deadline in seconds for the message received over the push endpoint
  int ackDeadlineInSeconds = 10;

  Subscription subscription =
      subscriptionAdminClient.createSubscription(
          subscriptionName, topicName, pushConfig, ackDeadlineInSeconds);
  return subscription;
}

Node.js

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Node.js, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Node.js API.

// Imports the Google Cloud client library
const {PubSub} = require('@google-cloud/pubsub');

// Creates a client
const pubsub = new PubSub();

/**
 * TODO(developer): Uncomment the following lines to run the sample.
 */
// const topicName = 'my-topic';
// const subscriptionName = 'my-sub';

const options = {
  pushConfig: {
    // Set to an HTTPS endpoint of your choice. If necessary, register
    // (authorize) the domain on which the server is hosted.
    pushEndpoint: `https://${pubsub.projectId}.appspot.com/push`,
  },
};

await pubsub.topic(topicName).createSubscription(subscriptionName, options);
console.log(`Subscription ${subscriptionName} created.`);

PHP

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von PHP, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub PHP API.

use Google\Cloud\PubSub\PubSubClient;

/**
 * Creates a Pub/Sub push subscription.
 *
 * @param string $projectId  The Google project ID.
 * @param string $topicName  The Pub/Sub topic name.
 * @param string $subscriptionName  The Pub/Sub subscription name.
 * @param string $endpoint  The endpoint for the push subscription.
 */
function create_push_subscription($projectId, $topicName, $subscriptionName, $endpoint)
{
    $pubsub = new PubSubClient([
        'projectId' => $projectId,
    ]);
    $topic = $pubsub->topic($topicName);
    $subscription = $topic->subscription($subscriptionName);
    $subscription->create([
        'endpoint' => $endpoint
    ]);

    printf('Subscription created: %s' . PHP_EOL, $subscription->name());
}

Python

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Python, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Python API.

from google.cloud import pubsub_v1

# TODO project_id = "Your Google Cloud Project ID"
# TODO topic_name = "Your Pub/Sub topic name"
# TODO subscription_name = "Your Pub/Sub subscription name"
# TODO endpoint = "https://my-test-project.appspot.com/push"

subscriber = pubsub_v1.SubscriberClient()
topic_path = subscriber.topic_path(project_id, topic_name)
subscription_path = subscriber.subscription_path(
    project_id, subscription_name)

push_config = pubsub_v1.types.PushConfig(
    push_endpoint=endpoint)

subscription = subscriber.create_subscription(
    subscription_path, topic_path, push_config)

print('Push subscription created: {}'.format(subscription))
print('Endpoint for subscription is: {}'.format(endpoint))

Ruby

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Ruby, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Ruby API.

# project_id        = "Your Google Cloud Project ID"
# topic_name        = "Your Pubsub topic name"
# subscription_name = "Your Pubsub subscription name"
# endpoint          = "Endpoint where your app receives messages"
require "google/cloud/pubsub"

pubsub = Google::Cloud::Pubsub.new project: project_id

topic        = pubsub.topic topic_name
subscription = topic.subscribe subscription_name,
                               endpoint: endpoint

puts "Push subscription #{subscription_name} created."

Zwischen Push- und Pull-Abos wechseln

Sie können den Abotyp über die Cloud Pub/Sub GCP Console ändern. Hier bearbeiten Sie das Abo und ändern den Zustellungstyp in Pull oder Push.

Alternativ können Sie das gcloud-Befehlszeilentool nutzen. Hier verwenden Sie zum Ändern der Push-Endpunkt-URL den Befehl modify-push-config.

  • Geben Sie als URL einen leeren String an, um ein Push-Abo in ein Pull-Abo umzuwandeln.
  • Geben Sie eine gültige URL an, um aus einem Pull-Abo ein Push-Abo zu machen.

Beispiele: Endpunkt oder Zustellmechanismus eines Abos ändern

Nachdem ein Abo erstellt wurde, können Sie den Push-Endpunkt eines Abos aktualisieren oder von Push zu Pull wechseln und umgekehrt. Im Folgenden wird anhand von Beispielen dargestellt, wie Sie ein vorhandenes Pull- oder Push-Abo aktualisieren, indem Sie eine nicht leere, gültige HTTPS-Push-Endpunkt-URL angeben:

GCLOUD-BEFEHL

   gcloud pubsub subscriptions modify-push-config mySubscription --push-endpoint="https://anotherapp.appspot.com/push"

Go

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Go, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Go API.

// For example, endpoint is "https://my-test-project.appspot.com/push".
subConfig, err := client.Subscription(subName).Update(ctx, pubsub.SubscriptionConfigToUpdate{
	PushConfig: &pubsub.PushConfig{Endpoint: endpoint},
})
if err != nil {
	return err
}
fmt.Printf("Updated subscription config: %#v", subConfig)

Java

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Java, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Java API.

try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) {
  ProjectSubscriptionName subscriptionName =
      ProjectSubscriptionName.of(projectId, subscriptionId);
  PushConfig pushConfig = PushConfig.newBuilder().setPushEndpoint(endpoint).build();
  subscriptionAdminClient.modifyPushConfig(subscriptionName, pushConfig);
}

Node.js

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Node.js, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Node.js API.

// Imports the Google Cloud client library
const {PubSub} = require('@google-cloud/pubsub');

// Creates a client
const pubsub = new PubSub();

/**
 * TODO(developer): Uncomment the following line to run the sample.
 */
// const topicName = 'my-topic';
// const subscriptionName = 'my-sub';

const options = {
  // Set to an HTTPS endpoint of your choice. If necessary, register
  // (authorize) the domain on which the server is hosted.
  pushEndpoint: `https://${pubsub.projectId}.appspot.com/push`,
};

await pubsub
  .topic(topicName)
  .subscription(subscriptionName)
  .modifyPushConfig(options);
console.log(`Modified push config for subscription ${subscriptionName}.`);

Python

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Python, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Python API.

from google.cloud import pubsub_v1

# TODO project_id = "Your Google Cloud Project ID"
# TODO topic_name = "Your Pub/Sub topic name"
# TODO subscription_name = "Your Pub/Sub subscription name"
# TODO endpoint = "https://my-test-project.appspot.com/push"

subscriber = pubsub_v1.SubscriberClient()
subscription_path = subscriber.subscription_path(
    project_id, subscription_name)

push_config = pubsub_v1.types.PushConfig(
    push_endpoint=endpoint)

subscription = pubsub_v1.types.Subscription(
    name=subscription_path,
    push_config=push_config)

update_mask = {
    'paths': {
        'push_config',
    }
}

subscriber.update_subscription(subscription, update_mask)
result = subscriber.get_subscription(subscription_path)

print('Subscription updated: {}'.format(subscription_path))
print('New endpoint for subscription is: {}'.format(
    result.push_config))

Ruby

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Ruby, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Ruby API.

# project_id        = "Your Google Cloud Project ID"
# subscription_name = "Your Pubsub subscription name"
# new_endpoint      = "Endpoint where your app receives messages""
require "google/cloud/pubsub"

pubsub = Google::Cloud::Pubsub.new project: project_id

subscription          = pubsub.subscription subscription_name
subscription.endpoint = new_endpoint

puts "Push endpoint updated."

Richtlinien zum Aboablauf ändern

Abos laufen standardmäßig nach 31 Tagen Inaktivität ab. Erkennt Cloud Pub/Sub Aktivitäten von Abonnenten (z. B. offene Verbindungen, aktive Pull- oder erfolgreiche Push-Vorgänge), wird die Zeit bis zum Löschen des Abos wieder zurückgesetzt.

Passen Sie die Ablaufrichtlinien des Abos an, um dieses Verhalten zu ändern. Sie können die Dauer der Richtlinie entweder festlegen, wenn Sie das Abo erstellen, oder zu einem späteren Zeitpunkt ändern. Der zulässige Mindestwert für eine Ablaufrichtlinie ist ein Tag. Es gibt keinen Maximalwert. Wählen Sie eine der folgenden Optionen, um die Richtlinie zu konfigurieren:

  • Die in den Abo-Befehlen von gcloud beta verfügbaren Flags für Dauer und Ablauf. Beispiel:

    alias pubsub='gcloud beta pubsub'
    # subscription that expires after one day of inactivity
    pubsub subscriptions create mySubscription --expiration-period=1d --topic myTopic
    # make the subscription non-expiring
    pubsub subscriptions update mySubscription --expiration-period=never
    
  • Unterstützung für Ablaufrichtlinien ist in den Cloud Pub/Sub-Clientbibliotheken verfügbar.

  • RPC-Methoden:

  • REST-Methode

Nicht bestätigte und bestätigte Nachrichten aufbewahren

Gemäß der Standardeinstellung von Cloud Sub/Pub werden unbestätigte Nachrichten eines Abos nach ihrer Veröffentlichung sieben Tage lang im Speicher aufbewahrt. Nach Ablauf der in diesem Attribut angegebenen Zeit können Nachrichten unabhängig von ihrem Bestätigungsstatus gelöscht werden. Sie können mit messageRetentionDuration angeben, wie lange Nachrichten für ein Abo aufbewahrt werden sollen (maximal sieben Tage). Das Abo kann so konfiguriert werden, dass auch bestätigte Nachrichten über diesen Zeitraum aufbewahrt werden. Siehe Nachrichten wiedergeben und verwerfen.

Abos auflisten

Sie können alle Abos in einem Projekt oder nur Abos für ein bestimmtes Thema auflisten. Falls erforderlich, finden Sie Einzelheiten zur Begrenzung des Zugriffs unter Zugriffssteuerung. Im Folgenden sehen Sie Beispiele für das Auflisten aller Abos in einem Projekt.

GCLOUD-BEFEHL

   gcloud pubsub subscriptions list

C#

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von C#, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub C# API.

SubscriberServiceApiClient subscriber = SubscriberServiceApiClient.Create();
ProjectName projectName = new ProjectName(projectId);
IEnumerable<Subscription> subscriptions =
    subscriber.ListSubscriptions(projectName);
foreach (Subscription subscription in subscriptions)
{
    Console.WriteLine($"{subscription}");
}

Go

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Go, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Go API.

var subs []*pubsub.Subscription
it := client.Subscriptions(ctx)
for {
	s, err := it.Next()
	if err == iterator.Done {
		break
	}
	if err != nil {
		return nil, err
	}
	subs = append(subs, s)
}

Java

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Java, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Java API.

try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) {
  ListSubscriptionsRequest listSubscriptionsRequest =
      ListSubscriptionsRequest.newBuilder()
          .setProject(ProjectName.of(projectId).toString())
          .build();
  ListSubscriptionsPagedResponse response =
      subscriptionAdminClient.listSubscriptions(listSubscriptionsRequest);
  Iterable<Subscription> subscriptions = response.iterateAll();
  for (Subscription subscription : subscriptions) {
    // do something with the subscription
  }
  return response;
}

Node.js

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Node.js, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Node.js API.

// Imports the Google Cloud client library
const {PubSub} = require('@google-cloud/pubsub');

// Creates a client
const pubsub = new PubSub();

// Lists all subscriptions in the current project
const [subscriptions] = await pubsub.getSubscriptions();
console.log('Subscriptions:');
subscriptions.forEach(subscription => console.log(subscription.name));

PHP

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von PHP, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub PHP API.

use Google\Cloud\PubSub\PubSubClient;

/**
 * Lists all Pub/Sub subscriptions.
 *
 * @param string $projectId  The Google project ID.
 */
function list_subscriptions($projectId)
{
    $pubsub = new PubSubClient([
        'projectId' => $projectId,
    ]);
    foreach ($pubsub->subscriptions() as $subscription) {
        printf('Subscription: %s' . PHP_EOL, $subscription->name());
    }
}

Python

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Python, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Python API.

from google.cloud import pubsub_v1

# TODO project_id = "Your Google Cloud Project ID"

subscriber = pubsub_v1.SubscriberClient()
project_path = subscriber.project_path(project_id)

for subscription in subscriber.list_subscriptions(project_path):
    print(subscription.name)

Ruby

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Ruby, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Ruby API.

# project_id = Your Google Cloud Project ID
require "google/cloud/pubsub"

pubsub = Google::Cloud::Pubsub.new project: project_id

subscriptions = pubsub.list_subscriptions

puts "Subscriptions:"
subscriptions.each do |subscription|
  puts subscription.name
end

Auf Abos zugreifen

Im Folgenden sehen Sie Beispiele für den Zugriff auf Abos für ein bestimmtes Thema.

GCLOUD-BEFEHL

   gcloud pubsub topics list-subscriptions myTopic

Go

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Go, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Go API.

var subs []*pubsub.Subscription

it := client.Topic(topicID).Subscriptions(ctx)
for {
	sub, err := it.Next()
	if err == iterator.Done {
		break
	}
	if err != nil {
		return nil, err
	}
	subs = append(subs, sub)
}

Java

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Java, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Java API.

try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) {
  ProjectTopicName topicName = ProjectTopicName.of(projectId, topicId);
  ListTopicSubscriptionsRequest request =
      ListTopicSubscriptionsRequest.newBuilder().setTopic(topicName.toString()).build();
  ListTopicSubscriptionsPagedResponse response =
      topicAdminClient.listTopicSubscriptions(request);
  Iterable<String> subscriptionNames = response.iterateAll();
  for (String subscriptionName : subscriptionNames) {
    // do something with the subscription name
  }
  return response;
}

Node.js

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Node.js, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Node.js API.

// Imports the Google Cloud client library
const {PubSub} = require('@google-cloud/pubsub');

// Creates a client
const pubsub = new PubSub();

/**
 * TODO(developer): Uncomment the following line to run the sample.
 */
// const topicName = 'my-topic';

// Lists all subscriptions for the topic
const [subscriptions] = await pubsub.topic(topicName).getSubscriptions();
console.log(`Subscriptions for ${topicName}:`);
subscriptions.forEach(subscription => console.log(subscription.name));

Python

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Python, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Python API.

from google.cloud import pubsub_v1

# TODO project_id = "Your Google Cloud Project ID"
# TODO topic_name = "Your Pub/Sub topic name"

publisher = pubsub_v1.PublisherClient()
topic_path = publisher.topic_path(project_id, topic_name)

for subscription in publisher.list_topic_subscriptions(topic_path):
    print(subscription)

Ruby

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Ruby, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Ruby API.

# project_id = "Your Google Cloud Project ID"
# topic_name = "Your Pubsub topic name"
require "google/cloud/pubsub"

pubsub = Google::Cloud::Pubsub.new project: project_id

topic         = pubsub.topic topic_name
subscriptions = topic.subscriptions

puts "Subscriptions in topic #{topic.name}:"
subscriptions.each do |subscription|
  puts subscription.name
end

Abos löschen

Im Folgenden sehen Sie Beispiele für das Löschen von Abos in einem Projekt, wenn sie nicht mehr benötigt werden.

GCLOUD-BEFEHL

   gcloud pubsub subscriptions delete mySubscription

C#

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von C#, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub C# API.

SubscriberServiceApiClient subscriber = SubscriberServiceApiClient.Create();
SubscriptionName subscriptionName = new SubscriptionName(projectId,
    subscriptionId);
subscriber.DeleteSubscription(subscriptionName);
Console.WriteLine("Subscription deleted.");

Go

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Go, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Go API.

sub := client.Subscription(subName)
if err := sub.Delete(ctx); err != nil {
	return err
}
fmt.Println("Subscription deleted.")

Java

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Java, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Java API.

try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) {
  ProjectSubscriptionName subscriptionName =
      ProjectSubscriptionName.of(projectId, subscriptionId);
  subscriptionAdminClient.deleteSubscription(subscriptionName);
  return subscriptionName;
}

Node.js

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Node.js, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Node.js API.

// Imports the Google Cloud client library
const {PubSub} = require('@google-cloud/pubsub');

// Creates a client
const pubsub = new PubSub();

/**
 * TODO(developer): Uncomment the following line to run the sample.
 */
// const subscriptionName = 'my-sub';

// Deletes the subscription
await pubsub.subscription(subscriptionName).delete();
console.log(`Subscription ${subscriptionName} deleted.`);

PHP

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von PHP, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub PHP API.

use Google\Cloud\PubSub\PubSubClient;

/**
 * Creates a Pub/Sub subscription.
 *
 * @param string $projectId  The Google project ID.
 * @param string $subscriptionName  The Pub/Sub subscription name.
 */
function delete_subscription($projectId, $subscriptionName)
{
    $pubsub = new PubSubClient([
        'projectId' => $projectId,
    ]);
    $subscription = $pubsub->subscription($subscriptionName);
    $subscription->delete();

    printf('Subscription deleted: %s' . PHP_EOL, $subscription->name());
}

Python

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Python, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Python API.

from google.cloud import pubsub_v1

# TODO project_id = "Your Google Cloud Project ID"
# TODO subscription_name = "Your Pub/Sub subscription name"

subscriber = pubsub_v1.SubscriberClient()
subscription_path = subscriber.subscription_path(
    project_id, subscription_name)

subscriber.delete_subscription(subscription_path)

print('Subscription deleted: {}'.format(subscription_path))

Ruby

Lesen Sie unter Cloud Pub/Sub Schnellstart-Anleitung: Clientbibliotheken verwenden die Anleitung zur Einrichtung von Ruby, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Cloud Pub/Sub Ruby API.

# project_id        = "Your Google Cloud Project ID"
# subscription_name = "Your Pubsub subscription name"
require "google/cloud/pubsub"

pubsub = Google::Cloud::Pubsub.new project: project_id

subscription = pubsub.subscription subscription_name
subscription.delete

puts "Subscription #{subscription_name} deleted."

Ressourcennamen

Über einen Cloud Pub/Sub-Ressourcennamen wird eine Cloud Pub/Sub-Ressource (z. B. ein Abo oder Thema) eindeutig identifiziert. Er muss das folgende Format haben:

projects/project-identifier/collection/relative-name

Die Projekt-ID muss diejenige aus der Google Cloud Platform Console sein, zum Beispiel projects/myproject/topics/mytopic.

Die Sammlung muss aus subscriptions oder topics bestehen.

Der relative Name muss folgende Voraussetzungen erfüllen:

  • Er muss mit einem Buchstaben beginnen
  • Er muss zwischen 3 und 255 Zeichen lang sein
  • Er darf nur die folgenden Zeichen enthalten:

    • Buchstaben: [A-Za-z]
    • Ziffern: [0-9]
    • Bindestriche: -
    • Unterstriche: _
    • Punkte: .
    • Tilden: ~
    • Pluszeichen: +
    • Prozentzeichen: %

      Die oben genannten Sonderzeichen können in Ressourcennamen verwendet werden. Sie müssen aber darauf achten, dass sie in URLs korrekt codiert/decodiert werden. Dies ist besonders für REST-Aufrufe wichtig.

Der relative Name darf nicht mit dem String goog beginnen.

Ressourcennamen dürfen Sonderzeichen enthalten. Zum Beispiel ist mi-tópico ein ungültiger relativer Name, aber mi-t%C3%B3pico ist gültig.

Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...

Cloud Pub/Sub-Dokumentation