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