[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EEECFG2KGGKFATA1D2WDBG":3,"skill-same:01M6EEECFG2KGGKFATA1D2WDBG":47},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":20,"linkOnly":21,"markdownContent":22,"markdownBody":22,"frontMatter":23,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":27,"repositoryHtmlUrl":28,"repositoryHomepageUrl":29,"ownerHtmlUrl":30,"ownerBlogUrl":6,"ownerDescription":31,"updatedAt":32,"install":33,"resources":46},"01M6EEECFG2KGGKFATA1D2WDBG","aws-sqs",null,"ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",66,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FTerminalSkills\u002Fskills\u002Faws-sqs\u002FSKILL.md",[],[18,19],"aws","aws sqs","2026-11-10 10:12:30",false,"# AWS SQS\n\nAmazon Simple Queue Service (SQS) is a fully managed message queuing service for decoupling microservices. It offers two queue types: Standard (best-effort ordering, at-least-once delivery) and FIFO (exactly-once, ordered).\n\n## Core Concepts\n\n- **Standard Queue** — unlimited throughput, at-least-once delivery, best-effort ordering\n- **FIFO Queue** — exactly-once processing, strict ordering, 3000 msg\u002Fs with batching\n- **Visibility Timeout** — period a message is hidden after being received\n- **Dead-Letter Queue (DLQ)** — destination for messages that fail processing\n- **Message Group ID** — FIFO ordering key for parallel processing within a queue\n- **Long Polling** — reduces empty responses and API costs\n\n## Creating Queues\n\n```bash\n# Create a standard queue\naws sqs create-queue \\\n  --queue-name order-processing \\\n  --attributes '{\n    \"VisibilityTimeout\": \"60\",\n    \"MessageRetentionPeriod\": \"1209600\",\n    \"ReceiveMessageWaitTimeSeconds\": \"20\"\n  }'\n```\n\n```bash\n# Create a FIFO queue (name must end in .fifo)\naws sqs create-queue \\\n  --queue-name order-processing.fifo \\\n  --attributes '{\n    \"FifoQueue\": \"true\",\n    \"ContentBasedDeduplication\": \"true\",\n    \"VisibilityTimeout\": \"60\"\n  }'\n```\n\n## Dead-Letter Queues\n\n```bash\n# Create the DLQ first\naws sqs create-queue --queue-name order-processing-dlq\n\n# Get DLQ ARN\nDLQ_ARN=$(aws sqs get-queue-attributes \\\n  --queue-url https:\u002F\u002Fsqs.us-east-1.amazonaws.com\u002F123456789\u002Forder-processing-dlq \\\n  --attribute-names QueueArn --query 'Attributes.QueueArn' --output text)\n\n# Configure main queue to use DLQ after 3 failed attempts\naws sqs set-queue-attributes \\\n  --queue-url https:\u002F\u002Fsqs.us-east-1.amazonaws.com\u002F123456789\u002Forder-processing \\\n  --attributes '{\n    \"RedrivePolicy\": \"{\\\"deadLetterTargetArn\\\":\\\"'$DLQ_ARN'\\\",\\\"maxReceiveCount\\\":\\\"3\\\"}\"\n  }'\n```\n\n```bash\n# Redrive messages from DLQ back to source queue\naws sqs start-message-move-task \\\n  --source-arn \"$DLQ_ARN\" \\\n  --destination-arn \"arn:aws:sqs:us-east-1:123456789:order-processing\"\n```\n\n## Sending Messages\n\n```bash\n# Send a single message\naws sqs send-message \\\n  --queue-url https:\u002F\u002Fsqs.us-east-1.amazonaws.com\u002F123456789\u002Forder-processing \\\n  --message-body '{\"orderId\":\"12345\",\"action\":\"process\"}' \\\n  --message-attributes '{\n    \"OrderType\": {\"DataType\":\"String\",\"StringValue\":\"premium\"}\n  }'\n```\n\n```bash\n# Send to FIFO queue with group ID\naws sqs send-message \\\n  --queue-url https:\u002F\u002Fsqs.us-east-1.amazonaws.com\u002F123456789\u002Forder-processing.fifo \\\n  --message-body '{\"orderId\":\"12345\",\"action\":\"process\"}' \\\n  --message-group-id \"customer-789\" \\\n  --message-deduplication-id \"order-12345-v1\"\n```\n\n## Batch Operations\n\n```bash\n# Send up to 10 messages in a batch\naws sqs send-message-batch \\\n  --queue-url https:\u002F\u002Fsqs.us-east-1.amazonaws.com\u002F123456789\u002Forder-processing \\\n  --entries '[\n    {\"Id\":\"1\",\"MessageBody\":\"{\\\"orderId\\\":\\\"001\\\"}\"},\n    {\"Id\":\"2\",\"MessageBody\":\"{\\\"orderId\\\":\\\"002\\\"}\"},\n    {\"Id\":\"3\",\"MessageBody\":\"{\\\"orderId\\\":\\\"003\\\"}\"}\n  ]'\n```\n\n```python\n# Batch consumer with boto3\nimport boto3\nimport json\n\nsqs = boto3.client('sqs')\nQUEUE_URL = 'https:\u002F\u002Fsqs.us-east-1.amazonaws.com\u002F123456789\u002Forder-processing'\n\ndef poll_and_process():\n    while True:\n        response = sqs.receive_message(\n            QueueUrl=QUEUE_URL,\n            MaxNumberOfMessages=10,  # batch up to 10\n            WaitTimeSeconds=20,       # long polling\n            MessageAttributeNames=['All']\n        )\n        messages = response.get('Messages', [])\n        if not messages:\n            continue\n\n        entries_to_delete = []\n        for msg in messages:\n            try:\n                body = json.loads(msg['Body'])\n                process_order(body)\n                entries_to_delete.append({\n                    'Id': msg['MessageId'],\n                    'ReceiptHandle': msg['ReceiptHandle']\n                })\n            except Exception as e:\n                print(f\"Failed: {e}\")\n                # Message returns to queue after visibility timeout\n\n        if entries_to_delete:\n            sqs.delete_message_batch(\n                QueueUrl=QUEUE_URL,\n                Entries=entries_to_delete\n            )\n```\n\n## Receiving and Deleting\n\n```bash\n# Receive messages with long polling\naws sqs receive-message \\\n  --queue-url https:\u002F\u002Fsqs.us-east-1.amazonaws.com\u002F123456789\u002Forder-processing \\\n  --max-number-of-messages 5 \\\n  --wait-time-seconds 20 \\\n  --message-attribute-names All\n```\n\n```bash\n# Delete a processed message\naws sqs delete-message \\\n  --queue-url https:\u002F\u002Fsqs.us-east-1.amazonaws.com\u002F123456789\u002Forder-processing \\\n  --receipt-handle \"AQEBzL...\"\n```\n\n```bash\n# Change visibility timeout for a message needing more processing time\naws sqs change-message-visibility \\\n  --queue-url https:\u002F\u002Fsqs.us-east-1.amazonaws.com\u002F123456789\u002Forder-processing \\\n  --receipt-handle \"AQEBzL...\" \\\n  --visibility-timeout 120\n```\n\n## Monitoring\n\n```bash\n# Check queue depth\naws sqs get-queue-attributes \\\n  --queue-url https:\u002F\u002Fsqs.us-east-1.amazonaws.com\u002F123456789\u002Forder-processing \\\n  --attribute-names ApproximateNumberOfMessages,ApproximateNumberOfMessagesNotVisible,ApproximateNumberOfMessagesDelayed\n```\n\n```bash\n# Purge all messages (use with caution)\naws sqs purge-queue \\\n  --queue-url https:\u002F\u002Fsqs.us-east-1.amazonaws.com\u002F123456789\u002Forder-processing\n```\n\n## Best Practices\n\n- Always enable long polling (WaitTimeSeconds=20) to reduce costs\n- Set up dead-letter queues on every queue to catch poison messages\n- Use FIFO queues only when ordering matters — standard queues have much higher throughput\n- Process and delete messages in batches for efficiency\n- Set visibility timeout to 6x your average processing time\n- Use message group IDs in FIFO queues for parallel ordered processing\n- Monitor `ApproximateNumberOfMessages` and alert on queue depth spikes\n- Implement idempotent consumers — messages may be delivered more than once\n",{},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002FTerminalSkills\u002Fskills\u002Faws-sqs",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":7,"skillName":5,"commands":34,"prompt":44,"zipAvailable":45},[35,38,41],{"tool":36,"command":37},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill aws-sqs",{"tool":39,"command":40},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill aws-sqs",{"tool":42,"command":43},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill aws-sqs","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FTerminalSkills\u002Fskills\u002Faws-sqs\u002FSKILL.md",true,[],[48,62,72,81,87,94],{"skillNo":49,"name":50,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":51,"categories":52,"keywords":58,"publishedAt":20},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[53],{"categoryNo":54,"categoryName":55,"taxonomyType":56,"taxonomyTypeDesc":57},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[59,60,61],"model","model hierarchy","model hierarchy skill",{"skillNo":63,"name":64,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":65,"categories":66,"keywords":68,"publishedAt":20},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[67],{"categoryNo":54,"categoryName":55,"taxonomyType":56,"taxonomyTypeDesc":57},[69,70,71],"MCP","zoom","zoom mcp",{"skillNo":73,"name":74,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":77,"publishedAt":20},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[78,79,80,70],"sdk","zoom apps sdk","apps",{"skillNo":82,"name":83,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":86,"publishedAt":20},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[83],{"skillNo":88,"name":89,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":93,"publishedAt":20},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[92],{"categoryNo":54,"categoryName":55,"taxonomyType":56,"taxonomyTypeDesc":57},[89],{"skillNo":95,"name":96,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":99,"publishedAt":20},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[96]]