Skip to content

Messaging

Managed SQS queue on your own cluster

An Amazon SQS-compatible queue on your own cluster, so code written for SQS runs unchanged against an endpoint you own.

Created inside a project, beside the apps that use it. Each project gets its own instance, storage and credentials.

A recent addition. It installs today, and the console marks it as new until it has run on a customer's cluster.

01What it does

SQS queue, run for you

ElasticMQ on Anyport's own chart, with messages journaled to a volume.

Standard and FIFO queues behind the SQS API, so the AWS SDKs, Laravel's SQS driver and Celery's SQS transport connect to it by endpoint. Name the queues to create at start; a name ending in .fifo is a FIFO queue. Bound apps get the endpoint, the region, a key pair the server accepts and the first queue's URL, all under an SQS_ prefix so your app's real AWS credentials are left alone.

Messages are journaled to a volume and survive a restart, but every unconsumed message is also held in memory, so the size decides how large a backlog can grow. The server checks no signature, so it is reachable only from inside its project and cannot be published on a domain.

02Options

What you choose

What the console asks when you create it, in the catalog's own numbers. Anything marked chosen once cannot change without creating a new instance.

Sizes
small 256Mi, medium 1Gi, large 4Gi of memory
Storage
5Gi by default for the message journal, chosen once
Queues
Named at install; one called default if you name none
Pause
Yes; queued messages stay on the volume

03Binding

What your app receives

Bind it to an app and these arrive as environment variables. The values are generated once into a secret and reach the app from there, rather than as something you copy.

  • SQS_ENDPOINT
  • SQS_REGION
  • SQS_ACCESS_KEY_ID
  • SQS_SECRET_ACCESS_KEY
  • SQS_QUEUE
  • SQS_QUEUE_URL
  • SQS_PREFIX

04Adding it

Add SQS queue to a project

The same four steps as every service in the catalog.

  1. 01Open a project and go to Services.
  2. 02Pick it from the catalog and choose its options. Only the size is required; everything else has a default.
  3. 03Create it. Anyport installs it into the project's namespace, generates its credentials into a secret there, and tracks its health.
  4. 04Bind it to an app. The connection details arrive as environment variables, and rotating the credential never means editing an app.