Publish from SQS
This guide provides information on using SQS to publish events to Outpost.
Message Structure
SQS 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 be any JSON payload,
"data": Payload // can be any JSON payload
}
Configuration
Provide Outpost with connection and routing information for your SQS instance used for publishing events.
Environment Variables
PUBLISH_AWS_SQS_REGION="<REGION>"
PUBLISH_AWS_SQS_QUEUE="<QUEUE_NAME>"
PUBLISH_AWS_SQS_ACCESS_KEY_ID="<KEY_ID>"
PUBLISH_AWS_SQS_SECRET_ACCESS_KEY="<SECRET>"
Optionally, you can provide the PUBLISH_AWS_SQS_ENDPOINT environment variable to specify the endpoint URL for the SQS service. This can be useful for local development or when using a non-standard SQS endpoint.
Example
PUBLISH_AWS_SQS_REGION="eu-north-1"
PUBLISH_AWS_SQS_QUEUE="outpost-pub-queue"
PUBLISH_AWS_SQS_ACCESS_KEY_ID="REDACTED"
PUBLISH_AWS_SQS_SECRET_ACCESS_KEY="REDACTED"
YAML
publishmq:
aws_sqs:
region: <AWS_REGION>
queue: <QUEUE_NAME>
access_key_id: <KEY_ID>
secret_access_key: <SECRET>
# Optional.
# Useful for local development or when using a non-standard SQS endpoint.
endpoint: <URL>
Example
publishmq:
aws_sqs:
region: eu-north-1
queue: outpost-pub-queue
access_key_id: REDACTED
secret_access_key: REDACTED
Required Permissions
The following permissions are required for the provided access key:
sqs:ChangeMessageVisibilitysqs:DeleteMessagesqs:GetQueueUrlsqs:ReceiveMessage