Guides

Publish from GCP Pub/Sub

This guide provides information on using GCP Pub/Sub to publish events to Outpost.

Message Structure

GCP Pub/Sub messages should have the same payload structure as the Publish API endpoint.

{
  "tenant_id": "<TENANT_ID>",
  "destination_id": "<DESTINATION_ID>", // Optional. Provide a way of routing events to a specific destination
  "topic": "topic.name", // Topic defined in TOPICS environment variable
  "eligible_for_retry": true | false, // Should event delivery be retried. Default is true.
  "metadata": Payload, // can by any JSON payload,
  "data": Payload // can by any JSON payload
}
json

GCP Pub/Sub Setup

Create a topic and create a pull subscription within GCP Pub/Sub.

Once you have these in place, you can configure Outpost to subscribe to receive events and then publish them to subscribed Outpost Destinations.

Configuration

Provide Outpost with credentials, topic, and subscription for your GCP Pub/Sub instance used for publishing events.

Environment Variables

PUBLISH_GCP_PUBSUB_PROJECT=""
PUBLISH_GCP_PUBSUB_SERVICE_ACCOUNT_CREDENTIALS=""
PUBLISH_GCP_PUBSUB_TOPIC=""
PUBLISH_GCP_PUBSUB_SUBSCRIPTION=""
plain

Example

PUBLISH_GCP_PUBSUB_PROJECT="my-gcp-project"
PUBLISH_GCP_PUBSUB_SERVICE_ACCOUNT_CREDENTIALS="single_line_json_string"
PUBLISH_GCP_PUBSUB_TOPIC="outpost-publish"
PUBLISH_GCP_PUBSUB_SUBSCRIPTION="outpost-publish-sub"
plain

YAML

publishmq:
  gcp_pubsub:
    project: <GCP_PROJECT>
    service_account_credentials: <GCP_SERVICE_ACCOUNT_CREDENTIALS>
    topic: <GCP_PUBSUB_TOPIC>
    subscription: <GCP_PUBSUB_SUBSCRIPTION>
yaml

Example

publishmq:
  gcp_pubsub:
    project: "GCP_PUBSUB_PROJECT" # GCP project ID
    service_account_credentials: "GCP_PUBSUB_SERVICE_ACCOUNT_CREDENTIALS" # Contents of service account credentials JSON file
    topic: "outpost-publish" # Pub/Sub to read for published events
    subscription: "outpost-publish-sub" # Pub/Sub subscription for published events
yaml

Troubleshooting