Scaleway logo
Queues API

Queues API

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 overviewOpen in new context page.

(switchcolumn)

Tip

If Queues is not the service you're looking for, check out our or services.

(switchcolumn)

Concepts

Refer to our dedicated concepts pageOpen in new context to find definitions of all terminology related to Queues.

(switchcolumn) (switchcolumn)

Quickstart

  1. Configure your environment variables

    Note

    This is an optional step that seeks to simplify your usage of the API.

    TerminalCode
    export SCW_SECRET_KEY="<API secret key>" export SCW_PROJECT_ID="<Scaleway Project ID>"
  2. Activate the Queues protocol on your Scaleway Project:

    TerminalCode
    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'" }' | jq curl --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 | jq

    Tip

    • | 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
  3. 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 or false for each type of permission.

    TerminalCode
    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
  4. Export credentials: Export the credentials to your environment:

    TerminalCode
    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)
  5. Start creating queues and messages. The following commands show you how to create a queue, and send, receive and delete a message

    TerminalCode
    aws sqs create-queue --queue-name my-queue | tee my-queue.json
    TerminalCode
    aws sqs send-message --queue-url "$(jq -r .QueueUrl my-queue.json)" \ --message-body 'Hello world!'
    TerminalCode
    aws sqs receive-message --queue-url "$(jq -r .QueueUrl my-queue.json)" \ > my-sqs-message.json
    TerminalCode
    aws sqs delete-message --queue-url "$(jq -r .QueueUrl my-queue.json)" \ --receipt-handle "$(jq -r '.Messages[0].ReceiptHandle' my-sqs-message.json)"
  6. Disable Queues

    Important

    Disabling Queues deletes all queues and messages stored in your Queues service.

    TerminalCode
    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

(switchcolumn)

Requirement

(switchcolumn)

Technical limitations

Scaleway Queues does not support the entire set of AWS SQS actions or parameters. See the compatibility matrixOpen in new context 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 ProjectsOpen in new context.

Going further

For more help using Scaleway Queues, check out the following resources:

You can also read the AWS SQS documentationOpen in new context.