AWS SDK Version 4 for .NET
API Reference

AWS services or capabilities described in AWS Documentation may vary by region/location. Click Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

Creates a new standard or FIFO queue. You can pass one or more attributes in the request. Keep the following in mind:

To successfully create a new queue, you must provide a queue name that adheres to the limits related to queues and is unique within the scope of your queues.

After you create a queue, you must wait at least one second after the queue is created to be able to use the queue.

To retrieve the URL of a queue, use the GetQueueUrl action. This action only requires the QueueName parameter.

When creating queues, keep the following points in mind:

Cross-account permissions don't apply to this action. For more information, see Grant cross-account permissions to a role and a username in the Amazon SQS Developer Guide.

Note:

For .NET Core this operation is only available in asynchronous form. Please refer to CreateQueueAsync.

Namespace: Amazon.SQS
Assembly: AWSSDK.SQS.dll
Version: 3.x.y.z

Syntax

C#
public abstract CreateQueueResponse CreateQueue(
         CreateQueueRequest request
)

Parameters

request
Type: Amazon.SQS.Model.CreateQueueRequest

Container for the necessary parameters to execute the CreateQueue service method.

Return Value


The response from the CreateQueue service method, as returned by SQS.

Exceptions

ExceptionCondition
InvalidAddressException The specified ID is invalid.
InvalidAttributeNameException The specified attribute doesn't exist.
InvalidAttributeValueException A queue attribute value is invalid.
InvalidSecurityException The request was not made over HTTPS or did not use SigV4 for signing.
QueueDeletedRecentlyException You must wait 60 seconds after deleting a queue before you can create another queue with the same name.
QueueNameExistsException A queue with this name already exists. Amazon SQS returns this error only if the request includes attributes whose values differ from those of the existing queue.
RequestThrottledException The request was denied due to request throttling. Exceeds the permitted request rate for the queue or for the recipient of the request. Ensure that the request rate is within the Amazon SQS limits for sending messages. For more information, see Amazon SQS quotas in the Amazon SQS Developer Guide.
UnsupportedOperationException Error code 400. Unsupported operation.

Examples

This example shows how to create a queue.

Create queue example

var client = new AmazonSQSClient();

var attrs = new Dictionary<string, string>();

// Maximum message size of 256 KiB (1,024 bytes * 256 KiB = 262,144 bytes).
int maxMessage = 256 * 1024;

attrs.Add(QueueAttributeName.DelaySeconds,
  TimeSpan.FromSeconds(5).TotalSeconds.ToString());
attrs.Add(QueueAttributeName.MaximumMessageSize, maxMessage.ToString());
attrs.Add(QueueAttributeName.MessageRetentionPeriod,
  TimeSpan.FromDays(4).TotalSeconds.ToString());
attrs.Add(QueueAttributeName.ReceiveMessageWaitTimeSeconds,
  TimeSpan.FromSeconds(5).TotalSeconds.ToString());
attrs.Add(QueueAttributeName.VisibilityTimeout,
  TimeSpan.FromHours(12).TotalSeconds.ToString());

var request = new CreateQueueRequest
{
    Attributes = attrs,
    QueueName = "MyTestQueue"
};

var response = await client.CreateQueueAsync(request);

Console.WriteLine("Queue URL: " + response.QueueUrl);
            

The following operation creates an SQS queue named MyQueue.

Create an SQS queue


var client = new AmazonSQSClient();
var response = client.CreateQueue(new CreateQueueRequest 
{
    QueueName = "MyQueue", // The Name for the new queue
    Attributes = new Dictionary<string, string> {
        { "foo", "bar" },
        { "ghoti", "fish" }
    }
});

string queueUrl = response.QueueUrl; // The URL of the new queue

            

Version Information

.NET Framework:
Supported in: 4.7.2 and newer

See Also