一键导入
sqs
Manage Amazon SQS queues, messages, dead-letter queues, and queue policies via AWS CLI.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Manage Amazon SQS queues, messages, dead-letter queues, and queue policies via AWS CLI.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Manage AWS Certificate Manager certificates, validation, renewal, and import for ALB, CloudFront, and API Gateway via AWS CLI.
Manage Amazon API Gateway REST APIs, HTTP APIs, WebSocket APIs, stages, and deployments via AWS CLI.
Manage EC2 Auto Scaling groups, launch templates, scaling policies, and scheduled actions via AWS CLI.
Manage Elastic Load Balancers (ALB, NLB, CLB), target groups, listeners, and health checks via AWS CLI.
Manage AWS Organizations accounts, OUs, SCPs, and delegated administration via AWS CLI.
Manage Amazon SageMaker notebooks, training jobs, models, endpoints, and pipelines via AWS CLI.
| name | sqs |
| description | Manage Amazon SQS queues, messages, dead-letter queues, and queue policies via AWS CLI. |
| metadata | {"openclaw":{"emoji":"📨","requires":{"bins":["aws"]}}} |
Use this skill for message queue operations: creating and configuring queues, sending and receiving messages, managing dead-letter queues (DLQs), setting queue policies, and monitoring queue metrics.
sqs:* for full access, or scoped policies for specific operations# List all queues
aws sqs list-queues --output table
# List queues with a name prefix
aws sqs list-queues --queue-name-prefix <prefix>
# Get queue URL by name
aws sqs get-queue-url --queue-name <queue-name>
# Get queue attributes (message count, settings, ARN)
aws sqs get-queue-attributes \
--queue-url <queue-url> \
--attribute-names All
# Get approximate message count
aws sqs get-queue-attributes \
--queue-url <queue-url> \
--attribute-names ApproximateNumberOfMessages ApproximateNumberOfMessagesNotVisible ApproximateNumberOfMessagesDelayed \
--output table
# List queue tags
aws sqs list-queue-tags --queue-url <queue-url>
# List dead-letter source queues (which queues send to this DLQ)
aws sqs list-dead-letter-source-queues --queue-url <dlq-url>
# Send a message
aws sqs send-message \
--queue-url <queue-url> \
--message-body '<message-text>'
# Send a message with attributes
aws sqs send-message \
--queue-url <queue-url> \
--message-body '<message-text>' \
--message-attributes '{
"AttributeName": {"DataType": "String", "StringValue": "value"}
}'
# Send a message to a FIFO queue
aws sqs send-message \
--queue-url <queue-url> \
--message-body '<message-text>' \
--message-group-id '<group-id>' \
--message-deduplication-id '<dedup-id>'
# Receive messages (up to 10, with 20s long polling)
aws sqs receive-message \
--queue-url <queue-url> \
--max-number-of-messages 10 \
--wait-time-seconds 20 \
--attribute-names All \
--message-attribute-names All
# Delete a message after processing
aws sqs delete-message \
--queue-url <queue-url> \
--receipt-handle <receipt-handle>
# Send a batch of messages (up to 10)
aws sqs send-message-batch \
--queue-url <queue-url> \
--entries '[
{"Id": "1", "MessageBody": "first"},
{"Id": "2", "MessageBody": "second"}
]'
⚠️ Cost note: SQS pricing is per request — $0.40 per million requests (Standard) or $0.50 per million (FIFO). First 1M requests/month free.
# Create a standard queue
aws sqs create-queue --queue-name <queue-name>
# Create a FIFO queue (name must end in .fifo)
aws sqs create-queue \
--queue-name <queue-name>.fifo \
--attributes '{
"FifoQueue": "true",
"ContentBasedDeduplication": "true"
}'
# Create a queue with custom settings
aws sqs create-queue \
--queue-name <queue-name> \
--attributes '{
"VisibilityTimeout": "60",
"MessageRetentionPeriod": "1209600",
"ReceiveMessageWaitTimeSeconds": "20"
}'
# Set up a dead-letter queue
# Step 1: Create the DLQ
aws sqs create-queue --queue-name <queue-name>-dlq
# Step 2: Get the DLQ ARN
DLQ_ARN=$(aws sqs get-queue-attributes \
--queue-url <dlq-url> \
--attribute-names QueueArn \
--query 'Attributes.QueueArn' --output text)
# Step 3: Configure the source queue's redrive policy
aws sqs set-queue-attributes \
--queue-url <source-queue-url> \
--attributes "{
\"RedrivePolicy\": \"{\\\"maxReceiveCount\\\":\\\"5\\\",\\\"deadLetterTargetArn\\\":\\\"$DLQ_ARN\\\"}\"
}"
# Update queue attributes
aws sqs set-queue-attributes \
--queue-url <queue-url> \
--attributes '{"VisibilityTimeout": "120"}'
# Tag a queue
aws sqs tag-queue \
--queue-url <queue-url> \
--tags Environment=production,Team=backend
🛑 DESTRUCTIVE — Always confirm with the user before executing any of these commands.
# Purge all messages from a queue (IRREVERSIBLE)
aws sqs purge-queue --queue-url <queue-url>
# Delete a queue (IRREVERSIBLE — waits 60s before final deletion)
aws sqs delete-queue --queue-url <queue-url>
⚠️ Purge can only be called once every 60 seconds. Messages in flight may not be purged.
.fifo).ReceiveMessageWaitTimeSeconds: 20) to reduce empty responses and cost.DLQ_URL="<dlq-url>"
MAIN_URL="<main-queue-url>"
# Receive from DLQ and resend to main queue
while true; do
MSG=$(aws sqs receive-message --queue-url $DLQ_URL --max-number-of-messages 1 --wait-time-seconds 1)
BODY=$(echo $MSG | jq -r '.Messages[0].Body // empty')
HANDLE=$(echo $MSG | jq -r '.Messages[0].ReceiptHandle // empty')
[ -z "$BODY" ] && break
aws sqs send-message --queue-url $MAIN_URL --message-body "$BODY"
aws sqs delete-message --queue-url $DLQ_URL --receipt-handle "$HANDLE"
done
aws sqs get-queue-attributes \
--queue-url <queue-url> \
--attribute-names ApproximateNumberOfMessages ApproximateNumberOfMessagesNotVisible \
--query 'Attributes' --output table
# Enable SSE on an existing queue
aws sqs set-queue-attributes \
--queue-url <queue-url> \
--attributes '{"SqsManagedSseEnabled": "true"}'
| Error | Cause | Fix |
|---|---|---|
NonExistentQueue | Queue doesn't exist or wrong region | Verify with list-queues and check region |
QueueDeletedRecently | Recreating a queue within 60s of deletion | Wait 60 seconds before recreating with same name |
OverLimit | Too many queues (default 1000) | Request a limit increase or clean up unused queues |
InvalidParameterValue on FIFO | Queue name doesn't end in .fifo | Append .fifo to the queue name |
ReceiptHandleIsInvalid | Message visibility timed out | Re-receive the message to get a fresh receipt handle |
PurgeQueueInProgress | Purge called within 60s of previous purge | Wait 60 seconds between purge calls |