Pub/Sub용 커넥터

워크플로 내에서 Pub/Sub에 액세스하는 데 사용되는 기본 제공 함수를 정의하는 Workflows 커넥터입니다.

더 살펴보기

이 코드 샘플이 포함된 자세한 문서는 다음을 참조하세요.

코드 샘플

YAML

# This workflow demonstrates how to use the Cloud Pub/Sub connector:
# Create a Pub/Sub topic and a subscription to that topic
# Publish a message to the topic and pull the message from the subscription
# Delete both the subscription and the topic
# Expected output: "SUCCESS"
- init:
    assign:
      - project: ${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")}
      - topic: "TOPIC_ID"  # replace TOPIC_ID placeholder
      - subscription: "SUBSCRIPTION_ID"  # replace SUBSCRIPTION_ID placeholder
      - message: {"hello": "world"}
      - base64Msg: ${base64.encode(json.encode(message))}  # encodes bytes to Base64 text
- create_topic:
    call: googleapis.pubsub.v1.projects.topics.create
    args:
      name: ${"projects/" + project + "/topics/" + topic}
- create_subscription_to_topic:
    call: googleapis.pubsub.v1.projects.subscriptions.create
    args:
      name: ${"projects/" + project + "/subscriptions/" + subscription}
      body:
        name: ${"projects/" + project + "/subscriptions/" + subscription}
        topic: ${"projects/" + project + "/topics/" + topic}
- publish_message_to_topic:
    call: googleapis.pubsub.v1.projects.topics.publish
    args:
      topic: ${"projects/" + project + "/topics/" + topic}
      body:
        messages:
          - data: ${base64Msg}
- pull_message:
    call: googleapis.pubsub.v1.projects.subscriptions.pull
    args:
      subscription: ${"projects/" + project + "/subscriptions/" + subscription}
      body:
        maxMessages: 1
    result: m
- check_message:
    switch:
      - condition: ${m.receivedMessages[0].message.data != base64Msg}
        next: failed
- delete_subscription:
    call: googleapis.pubsub.v1.projects.subscriptions.delete
    args:
      subscription: ${"projects/" + project + "/subscriptions/" + subscription}
- delete_topic:
    call: googleapis.pubsub.v1.projects.topics.delete
    args:
      topic: ${"projects/" + project + "/topics/" + topic}
- the_end:
    return: "SUCCESS"
- failed:
    raise: ${"Received data:" + m.receivedMessages[0].message.data + " Expected data:" + base64Msg}

다음 단계

다른 Google Cloud 제품의 코드 샘플을 검색하고 필터링하려면 Google Cloud 샘플 브라우저를 참조하세요.