Mit Pub/Sub arbeiten

Cloud Pub/Sub ist ein vollständig verwalteter Echtzeit-Messaging-Dienst, mit dem Sie Nachrichten zwischen unabhängigen Anwendungen senden und empfangen können. Auf dieser Seite wird gezeigt, wie Sie Pub/Sub mit Cloud Tools for PowerShell verwalten. Anhand eines einfachen Beispiels wird erläutert, wie Sie ein Thema erstellen, Nachrichten unter dem Thema veröffentlichen, Abos für das Thema erstellen und Nachrichten vom Thema zum Abo abrufen.

Weitere Informationen zu Pub/Sub-Cmdlets finden Sie in der Cmdlet-Referenz für Cloud Tools for PowerShell. Weitere Informationen zu Pub/Sub im Allgemeinen finden Sie in der Übersicht über Pub/Sub.

Themen erstellen

Mit der Publisher-Anwendung werden Themen erstellt und Nachrichten zum Thema gesendet. Sie können zum Erstellen einer Instanz in einem bestimmten Thema das Cmdlet New‑GcpsTopic aufrufen. Wenn Ihre aktive gcloud-Konfiguration über ein Projekt verfügt, können Sie auf den Parameter -Project verzichten.

# Creates topic "my-topic" in the default project.
New-GcpsTopic -Topic "my-topic"

Nachrichten zu einem Thema veröffentlichen

Zum Veröffentlichen von Nachrichten zu einem Thema können Sie das Cmdlet Publish‑GcpsMessage verwenden.

# Publishes the message with data "This is a test" to topic "my-topic".
Publish-GcpsMessage -Data "This is a test" -Topic "my-topic"

Wenn Sie mit einer einzelnen Anforderung mehrere Nachrichten zu demselben Thema veröffentlichen möchten, können Sie mit dem Cmdlet New‑GcpsMessage eine Liste von Nachrichten erstellen und diese an das Cmdlet Publish‑GcpsMessage übergeben.

# Creates two messages.
$messageOne = New-GcpsMessage -Data "This is a test"
$messageTwo = New-GcpsMessage -Data "Data" -Attributes @{"key" = "value"}

# Publish the messages to topic "my-topic".
Publish-GcpsMessage -Message @($messageOne, $messageTwo) -Topic "my-topic"

Abonnements für ein Thema erstellen

Die Abonnentenanwendung erstellt Abonnements für bestimmte Themen, um Nachrichten aus diesen abzurufen. Sie können zum Erstellen einer Instanz in einem bestimmten Thema das Cmdlet New‑GcpsSubscription aufrufen. Wenn Ihre aktive gcloud-Konfiguration ein Projekt hat, müssen Sie den Parameter -Project nicht verwenden.

Standardmäßig wird ein Pull-Abo erstellt. Das bedeutet, dass der Abonnent die Nachrichten aus dem Thema abruft. Mit -PushEndpoint können Sie ein Push-Abo erstellen (Pub/Sub sendet Nachrichten an den ausgewählten Endpunkt des Abonnenten).

# Creates pull subscription "pull-subscription" to topic "my-topic" in the default project.
New-GcpsSubscription -Topic "my-topic" -Subscription "pull-subscription"

# Creates push subscription "push-subscription" to topic "my-topic".
New-GcpsSubscription -Topic "my-topic" `
                     -Subscription "push-subscription" `
                     -PushEndpoint "http://www.example.com"

Nachrichten für das Abo abrufen

Zum Abrufen von Nachrichten für das Abo können Sie das Get‑GcpsMessage-Cmdlet verwenden. Standardmäßig ist das Cmdlet blockiert, bis mindestens eine Nachricht abgerufen wird. Verwenden Sie zum Verhindern einer Blockierung den Parameter -ReturnImmediately. Das Cmdlet kann auch automatisch eine Bestätigung für jede abgerufene Nachricht senden, wenn Sie den Parameter -AutoAck verwenden. Ist dies nicht der Fall, müssen Sie zum Aenden der Bestätigung das Cmdlet Send‑GcpsAck verwenden. Unbestätigte Nachrichten werden nach Ablauf der Bestätigungsfrist für diese Nachrichten wieder zum Abrufen verfügbar.

# Pulls messages from subscription "my-subscription" and sends out acknowledgement automatically.
Get-GcpsMessage -Subscription "my-subscription" -AutoAck

# Pulls messages from subscription "my-subscription" and sends out acknowledgement with Send-GcpsAck.
$messages = Get-GcpsMessage -Subscription "my-subscription"
Send-GcpsAck -InputObject $messages