If Queues is not the service you're looking for, check out our NATS or Topics and Events services.
Queues API
Introduction
Queues is a managed messaging service provided by Scaleway. It supports the API developed by Amazon with its Simple Queue Service, or Amazon SQS. If you're new to Queues, you can learn more about it on our Queues overview page.
Concepts
Refer to our dedicated concepts page to find definitions of all terminology related to NATS, Queues, and Topics and Events.
Quickstart
-
Configure your environment variables
NoteThis is an optional step that seeks to simplify your usage of the API.
export SCW_SECRET_KEY="<API secret key>"export SCW_PROJECT_ID="<Scaleway Project ID>" -
Activate the Queues protocol on your Scaleway Project:
curl --silent -X POST \-H "X-Auth-Token: $SCW_SECRET_KEY" \-H "Content-Type: application/json" \"https://api.scaleway.com/mnq/v1beta1/regions/fr-par/activate-sqs" \-d '{"project_id": "'$SCW_PROJECT_ID'"}' | jqcurl --silent -X GET \-H "X-Auth-Token: $SCW_SECRET_KEY" \-H "Content-Type: application/json" \"https://api.scaleway.com/mnq/v1beta1/regions/fr-par/sqs-info?project_id=$SCW_PROJECT_ID" \| tee my-sqs-account.json | jqTip| tee my-sqs-account.json
saves the JSON object returned by the API to a file (used by next steps)| jq
displays the output nicely
-
Create credentials. Credentials are necessary to authenticate a client to your Queues service. Their permissions should be specified and adapted according to your needs, using
true
orfalse
for each type of permission.curl --silent -X POST \-H "X-Auth-Token: $SCW_SECRET_KEY" \-H "Content-Type: application/json" \"https://api.scaleway.com/mnq/v1beta1/regions/fr-par/sqs-credentials" \-d '{"name": "my-credentials","permissions": {"can_publish": true,"can_receive": true,"can_manage": true},"project_id": "'$SCW_PROJECT_ID'"}' | tee my-sqs-credentials.json | jq -
Export credentials: Export the credentials to your environment:
export AWS_ENDPOINT_URL=$(jq -r .sqs_endpoint_url my-sqs-account.json)export AWS_ACCESS_KEY_ID=$(jq -r .access_key my-sqs-credentials.json)export AWS_SECRET_ACCESS_KEY=$(jq -r .secret_key my-sqs-credentials.json) -
Start creating queues and messages. The following commands show you how to create a queue, and send, receive and delete a message
aws sqs create-queue --queue-name my-queue | tee my-queue.jsonaws sqs send-message --queue-url "$(jq -r .QueueUrl my-queue.json)" \--message-body 'Hello world!'aws sqs receive-message --queue-url "$(jq -r .QueueUrl my-queue.json)" \> my-sqs-message.jsonaws sqs delete-message --queue-url "$(jq -r .QueueUrl my-queue.json)" \--receipt-handle "$(jq -r '.Messages[0].ReceiptHandle' my-sqs-message.json)" -
Disable Queues
ImportantDisabling Queues deletes all queues and messages stored in your Queues service.
curl --silent -X POST \-H "X-Auth-Token: $SCW_SECRET_KEY" \-H "Content-Type: application/json" \"https://api.scaleway.com/mnq/v1beta1/regions/fr-par/deactivate-sqs" \-d '{"project_id": "'$SCW_PROJECT_ID'"}' | jq
- You have a Scaleway account
- You have created an API key and that the API key has sufficient IAM permissions to perform the actions described on this page
- You have installed
curl
- You have installed awscli v1 (version >= 1.29.0) or awscli v2 (version >= 2.13.0)
- You have installed jq
Technical limitations
Scaleway Queues does not support the entire set of AWS SQS actions or parameters. See the compatibility matrix for more information.
Also note that:
- The maximum message size is 256 kB.
- The maximum storage capacity for all queues of a project is 100 MB.
Technical information
Regional availability
Scaleway Queues is currently available in the following regions:
- Paris, France (
fr-par
) - Amsterdam, Netherlands (
nl-ams
)
Queues credentials
Credentials use a simplified permissions system with 3 permissions:
can_publish
: allows to send messages to a Queue.can_receive
: allows to receive and acknowledge (delete) messages.can_manage
: allows all other actions (Creating, Listing, Updating, Deleting Queues).
Each set of credentials gives access to all queues. Isolation can be handled by using several Scaleway Projects.
Going further
For more help using Scaleway Queues, check out the following resources:
- Our main documentation
- The
#messaging-queuing
channel on our Slack community - Our support ticketing system
You can also read the AWS SQS documentation.
Queues
Queues provides a queuing service. It must be activated per Project before being used
POST
/mnq/v1beta1/regions/{region}/activate-sqs
POST
/mnq/v1beta1/regions/{region}/deactivate-sqs
GET
/mnq/v1beta1/regions/{region}/sqs-info
Queues credentials
Queues credentials give access to the Queues service
GET
/mnq/v1beta1/regions/{region}/sqs-credentials
POST
/mnq/v1beta1/regions/{region}/sqs-credentials
GET
/mnq/v1beta1/regions/{region}/sqs-credentials/{sqs_credentials_id}
PATCH
/mnq/v1beta1/regions/{region}/sqs-credentials/{sqs_credentials_id}
DELETE
/mnq/v1beta1/regions/{region}/sqs-credentials/{sqs_credentials_id}