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
In the future, new attributes might be added. If you write code that calls this action,
we recommend that you structure your code so that it can handle new attributes gracefully.
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.
To remove the ability to change queue permissions, you must deny permission 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.
AddPermission
, RemovePermission
, and SetQueueAttributes
actions
in your IAM policy.
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
public virtual SetQueueAttributesResponse SetQueueAttributes( SetQueueAttributesRequest request )
Container for the necessary parameters to execute the SetQueueAttributes service method.
Exception | Condition |
---|---|
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. |
This example shows how to set queue attributes.
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);
.NET Framework:
Supported in: 4.5 and newer, 3.5