AWS SDK Version 3 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.

Sets the value of one or more queue attributes, like a policy. When you change a queue's attributes, the change can take up to 60 seconds for most of the attributes to propagate throughout the Amazon SQS system. Changes made to the MessageRetentionPeriod attribute can take up to 15 minutes and will impact existing messages in the queue potentially causing them to be expired and deleted if the MessageRetentionPeriod is reduced below the age of existing messages.

Note:

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

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

Syntax

C#
public abstract SetQueueAttributesResponse SetQueueAttributes(
         SetQueueAttributesRequest request
)

Parameters

request
Type: Amazon.SQS.Model.SetQueueAttributesRequest

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

Return Value


The response from the SetQueueAttributes 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.
OverLimitException The specified action violates a limit. For example, ReceiveMessage returns this error if the maximum number of in flight messages is reached and AddPermission returns this error if the maximum number of permissions for the queue is reached.
QueueDoesNotExistException Ensure that the QueueUrl is correct and that the queue has not been deleted.
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 set queue attributes.

Set queue attributes example

var client = new AmazonSQSClient();

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

// Maximum message size of 128 KiB (1,024 bytes * 128 KiB = 131,072 bytes).
int maxMessage = 128 * 1024;

attrs.Add(QueueAttributeName.DelaySeconds,
  TimeSpan.FromSeconds(5).TotalSeconds.ToString());
attrs.Add(QueueAttributeName.MaximumMessageSize, maxMessage.ToString());
attrs.Add(QueueAttributeName.MessageRetentionPeriod,
  TimeSpan.FromDays(1).TotalSeconds.ToString());
attrs.Add(QueueAttributeName.ReceiveMessageWaitTimeSeconds,
  TimeSpan.FromSeconds(5).TotalSeconds.ToString());
attrs.Add(QueueAttributeName.VisibilityTimeout,
  TimeSpan.FromHours(1).TotalSeconds.ToString());
// Dead-letter queue attributes.
attrs.Add(QueueAttributeName.RedrivePolicy,
  "{\"maxReceiveCount\":" +
  "\"5\"," +
  "\"deadLetterTargetArn\":" +
  "\"arn:aws:sqs:us-east-1:80398EXAMPLE:MyTestDeadLetterQueue\"}");

var request = new SetQueueAttributesRequest
{
  Attributes = attrs,
  QueueUrl = "https://sqs.us-east-1.amazonaws.com/80398EXAMPLE/MyTestQueue"
};

client.SetQueueAttributes(request);
      

Version Information

.NET Framework:
Supported in: 4.5 and newer, 3.5

See Also