Pub/Sub はフルマネージドのリアルタイム メッセージング サービスであり、個別のアプリケーション間でメッセージを送受信できます。このページでは、Cloud Tools for PowerShell を使用して Pub/Sub を管理する方法について説明します。トピックの作成、トピックへのメッセージのパブリッシュ、トピックへのサブスクリプションの作成、トピックからサブスクリプションへのメッセージの pull の簡単な例を示します。
Pub/Sub コマンドレットの詳細については、Cloud Tools for PowerShell コマンドレット リファレンスをご覧ください。一般的な Pub/Sub の詳細については、Pub/Sub の概要をご覧ください。
トピックの作成
パブリッシャー アプリケーションによって、メッセージが作成され、トピックに送信されます。New‑GcpsTopic
コマンドレットを呼び出して、特定のトピックにインスタンスを作成できます。アクティブな gcloud 構成にプロジェクトがある場合は、-Project
パラメータを使用する必要はありません。
# Creates topic "my-topic" in the default project. New-GcpsTopic -Topic "my-topic"
トピックへのメッセージのパブリッシュ
メッセージをトピックにパブリッシュするには、Publish‑GcpsMessage
コマンドレットを使用します。
# Publishes the message with data "This is a test" to topic "my-topic". Publish-GcpsMessage -Data "This is a test" -Topic "my-topic"
1 つのリクエストで複数のメッセージを同じトピックにパブリッシュするには、New‑GcpsMessage
コマンドレットを使用してメッセージの配列を作成し、Publish‑GcpsMessage
コマンドレットに渡します。
# 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"
トピックへのサブスクリプションの作成
サブスクライバー アプリケーションは、メッセージの受信先となるトピックへのサブスクリプションを作成します。New‑GcpsSubscription
コマンドレットを呼び出して、特定のトピックにインスタンスを作成できます。アクティブな gcloud
構成にプロジェクトがある場合は、-Project
パラメータを使用する必要はありません。
デフォルトでは、作成されたサブスクリプションは pull サブスクリプションです。つまり、サブスクライバーはトピックからメッセージを pull します。-PushEndpoint
を使用して push サブスクリプションを作成できます(Pub/Sub はサブスクライバーが選択したエンドポイントにメッセージを push します)。
# 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"
サブスクリプションへのメッセージの pull
サブスクリプションへのメッセージを pull するには、Get‑GcpsMessage
コマンドレットを使用します。
デフォルトでは、少なくとも 1 つのメッセージを取得するまで、コマンドレットはブロックされます。
ブロックを防ぐには、パラメータ -ReturnImmediately
を使用します。
パラメータ -AutoAck
を使用すると、取得したすべてのメッセージに対してコマンドレットから確認応答を自動的に送信することもできます。このパラメータを使用しない場合は、Send‑GcpsAck
コマンドレットを使用して確認応答を送信する必要があります。未確認のメッセージは、メッセージの確認応答期限が切れると、再び pull できるようになります。
# 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