Pub/Sub는 독립적인 애플리케이션이 서로 메시지를 주고받게 해주는 완전 관리형 실시간 메시징 서비스입니다. 이 페이지에서는 PowerShell용 Cloud Tools를 사용하여 Pub/Sub를 관리하는 방법을 보여줍니다. 주제를 만들고, 메시지를 주제에 게시하고, 주제에 대한 구독을 만들고, 주제에서 구독으로 메시지를 가져오는 간단한 예를 살펴봅니다.
Pub/Sub cmdlet에 대한 자세한 내용은 PowerShell용 Cloud Tools cmdlet 참조를 확인하세요. Pub/Sub에 대한 일반적인 내용은 Pub/Sub 개요를 참조하세요.
주제 만들기
게시자 애플리케이션이 메시지를 만들어 주제로 전달합니다. New‑GcpsTopic
cmdlet을 호출하여 특정 주제에 인스턴스를 만들 수 있습니다. 활성 gcloud 구성에 프로젝트가 있으면 -Project
매개변수를 사용할 필요가 없습니다.
# Creates topic "my-topic" in the default project. New-GcpsTopic -Topic "my-topic"
주제에 메시지 게시
메시지를 주제에 게시하려면 Publish‑GcpsMessage
cmdlet을 사용하면 됩니다.
# Publishes the message with data "This is a test" to topic "my-topic". Publish-GcpsMessage -Data "This is a test" -Topic "my-topic"
단일 요청으로 여러 메시지를 동일한 주제에 게시하려면 New‑GcpsMessage
cmdlet을 사용하여 메시지 배열을 만들어 Publish‑GcpsMessage
cmdlet에 전달하면 됩니다.
# 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
cmdlet을 호출하여 특정 주제에 인스턴스를 만들 수 있습니다. 활성 gcloud
구성에 프로젝트가 있으면 -Project
매개변수를 사용할 필요가 없습니다.
기본적으로 생성된 구독은 가져오기 구독이며, 이는 구독자가 주제에서 메시지를 가져온다는 의미입니다. -PushEndpoint
를 사용하여 내보내기 구독을 만듭니다(Pub/Sub이 구독자가 선택한 엔드포인트로 메시지를 내보냄).
# 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"
구독 메시지 가져오기
구독 메시지를 가져오려면 Get‑GcpsMessage
cmdlet을 사용하면 됩니다.
기본적으로 cmdlet는 최소한 하나의 메시지가 검색될 때까지 차단됩니다.
차단을 방지하려면 -ReturnImmediately
매개변수를 사용합니다.
매개변수 -AutoAck
를 사용할 경우 cmdlet은 자동으로 검색된 모든 메시지에 확인을 보낼 수 있습니다. 그렇지 않으면 Send‑GcpsAck
cmdlet을 사용하여 확인을 보내야 합니다. 승인되지 않은 메시지는 메시지의 승인 기한이 만료된 후에 다시 가져올 수 있습니다.
# 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