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