ChangeMessageVisibility
In this article:
ChangeMessageVisibility#
Description#
Updates the visibility timeout for a message in the queue. The visibility timeout starts again once the method is called.
Request Syntax#
POST / HTTP/1.1
Content-type: application/json
{
"QueueUrl": "string",
"ReceiptHandle": "string",
"VisibilityTimeout": integer
}
Request Parameters#
QueueUrl — The queue URL.
Type: String
Required: Yes
ReceiptHandle — The message ID obtained when calling ReceiveMessage.
Type: String
Required: Yes
VisibilityTimeout — The new visibility timeout in seconds.
Type: Integer
Required: Yes
Range: 0 to 43,200 (12 hours)
Response Syntax#
HTTP/1.1 200
Content-type: application/json
{
"Success": boolean
}
Response Elements#
Success — The operation result.
Type: Boolean
Errors#
InvalidParameterValue — The ID of the message to be deleted or the visibility timeout value is invalid.
ReceiptHandleIsInvalid — The specified ID of the message to be deleted is invalid.
Examples#
boto3
import boto3
session = boto3.Session(
aws_access_key_id="<AWS_ACCESS_KEY_ID>",
aws_secret_access_key="<AWS_SECRET_ACCESS_KEY>",
region_name="",
)
sqs_client = session.client(
'sqs',
endpoint_url='https://sqs.ru-msk.k2.cloud/',
)
# Receive message
response = sqs_client.receive_message(
QueueUrl='https://sqs.ru-msk.k2.cloud/123456789012/my-queue'
)
if 'Messages' in response:
message = response['Messages'][0]
# Extend visibility timeout
sqs_client.change_message_visibility(
QueueUrl='https://sqs.ru-msk.k2.cloud/123456789012/my-queue',
ReceiptHandle=message['ReceiptHandle'],
VisibilityTimeout=120
)
aws-cli
aws sqs --endpoint https://sqs.ru-msk.k2.cloud/ change-message-visibility \\
--queue-url https://sqs.ru-msk.k2.cloud/123456789012/my-queue \\
--receipt-handle "AQEB..." \\
--visibility-timeout 120