Azure Queue Storage for Python
Gives coding agents reliable Python patterns for secure Azure Queue Storage messaging and asynchronous task processing.
The skill explicitly prefers DefaultAzureCredential, constrains production credential chains, and requires deterministic client cleanup, reducing key exposure and resource-leak risk. However, destructive operations such as deleting queues, clearing messages, and deleting messages lack confirmation, scoped-permission guidance, sensitive-data handling, auditability, or rollback details, so points are deducted.
The main path covers sync and async clients, sending, receiving, and visibility timeouts, while the references add async credential cleanup and re-raising failures. However, lifecycle guidance is not fully consistent across examples, and error handling, retries, idempotency, poison-message handling, and dependency-version validation are thin; static review cannot establish runtime correctness, so the score remains below 10.
Triggers, Python SDK scope, sync/async modes, and the Service Bus boundary are reasonably clear. Inputs, expected outputs, exclusion rules, edge-case boundaries, Chinese-language support, and reachability from mainland-China networks are not addressed, so points are deducted.
The material includes front matter, MIT licensing, author and version metadata, installation notes, layered reference files, and a capability index. It lacks a changelog, explicit maintenance responsibility and update path, pinned dependency versions, FAQ/troubleshooting guidance, and comprehensive parameter documentation, so it is usable but incomplete.
The skill provides directly reusable examples for queue creation, message sending and receiving, updates, deletion, clearing, properties, async usage, and Base64 encoding. It lacks verified end-to-end outputs and production-grade error and observability patterns, while retry and destructive-operation semantics require user supplementation, limiting the score.
The repository includes CI workflows and general harness tests, and the skill's reference files are auditable. The supplied material does not include skill-specific committed tests, third-party execution evidence, or independent API corroboration, so this static review supports only limited verification.
- Do not use the clear_messages, delete_queue, or delete_message examples directly in production automation without authorization, scoping, idempotency, audit, and recovery controls.
- Verify the APIs, async iteration, credential lifecycle, and message-encoding behavior against current azure-storage-queue and azure-identity documentation, and pin validated dependency versions.
- DefaultAzureCredential may inspect multiple local or environment credentials; constrain credential sources in production and avoid logging message contents.
- Mainland-China network, regional endpoint, and Chinese troubleshooting support are not documented and should be validated separately.
What it does & when to use it
This skill is for developers using the Azure Queue Storage SDK for Python. It covers queue lifecycle management and common message operations, including sending, receiving, peeking, updating, deleting, and clearing messages. It provides both synchronous and asynchronous client examples and emphasizes DefaultAzureCredential plus deterministic client cleanup. It is useful for task distribution and asynchronous workflows, but does not document Azure resource provisioning, role assignment, or a complete production architecture.
Shows how to install azure-storage-queue and azure-identity, configure the storage account URL and environment variables, and use QueueServiceClient and QueueClient. It demonstrates string, JSON, and Base64-encoded message handling; visibility timeouts; message TTL; peeking; updates; deletion after successful processing; queue properties; and metadata. It also covers azure.storage.queue.aio and azure.identity.aio clients and recommends using dequeue_count for poison-message detection.
- A Python backend developer needs to enqueue work for asynchronous processing in Azure Queue Storage.
- A team wants the same Entra-based authentication pattern to work in local development and Azure production.
- A developer needs visibility timeouts, completion deletion, and dequeue counts to manage message retries.
- A Python application needs an async Queue Storage client for higher-throughput processing.
- A developer or operator needs to inspect messages or queue metadata without changing message visibility.
Pros & cons
- Covers both synchronous and asynchronous Python clients.
- Includes practical examples for queue lifecycle, message processing, visibility timeouts, TTL, and metadata.
- Clearly recommends DefaultAzureCredential and deterministic cleanup of clients and async credentials.
- Includes JSON message and binary Base64 encoding patterns.
- Does not cover Azure Storage account creation, networking, or role assignment.
- Does not specify dependency versions, pricing, service limits, or a concrete retry policy.
- The source provides no test scenarios or test-coverage evidence for this individual skill.
- Sessions and topics are only identified as reasons to consider Service Bus, not implemented here.
How to install
Run npx skills add microsoft/skills in the project and select this skill in the wizard. The README says skills are installed in the selected agent directory, such as .github/skills/ for GitHub Copilot. The source path is .github/plugins/azure-sdk-python/skills/azure-storage-queue-py/SKILL.md. Install the Python dependencies with pip install azure-storage-queue azure-identity.
How to use
Invoke it for tasks mentioning “queue storage,” “QueueServiceClient,” “QueueClient,” “message queue,” or “dequeue.” Example prompt: Use the Azure Queue Storage SDK for Python with DefaultAzureCredential and context managers to send, receive, and delete messages after successful processing. Set AZURE_STORAGE_ACCOUNT_URL; for production use of DefaultAzureCredential, also set AZURE_TOKEN_CREDENTIALS=prod or a specific credential value.
Compared to similar skills
The skill explicitly points to Service Bus when advanced features such as sessions or topics are needed. No further detailed comparison is provided in the source.