Pub/Sub 작업

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