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. 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 virtual 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 accountId is invalid.
InvalidAttributeNameException The specified attribute doesn't exist.
InvalidAttributeValueException A queue attribute value is invalid.
InvalidSecurityException When the request to a queue is not HTTPS and SigV4.
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 The specified queue doesn't exist.
RequestThrottledException The request was denied due to request throttling. The rate of requests per second exceeds the Amazon Web Services KMS request quota for an account and Region. A burst or sustained high rate of requests to change the state of the same KMS key. This condition is often known as a "hot key." Requests for operations on KMS keys in a Amazon Web Services CloudHSM key store might be throttled at a lower-than-expected rate when the Amazon Web Services CloudHSM cluster associated with the Amazon Web Services CloudHSM key store is processing numerous commands, including those unrelated to the Amazon Web Services CloudHSM key store.
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, 4.0, 3.5

See Also