Azure Queue Storage TypeScript Skill
Build Azure Queue Storage workers that send, receive, inspect, and manage messages in TypeScript or JavaScript.
The document covers Entra, shared-key, connection-string, and SAS authentication and explains some Node.js/browser differences, providing partial data-flow transparency. Points are deducted because examples directly handle account keys, connection strings, and SAS tokens without guidance on secret storage, least privilege, log redaction, or user confirmation; destructive operations such as delete and clearMessages and broad SAS permissions are shown without rollback or recovery guidance.
The client hierarchy, send/receive/update/delete flows, visibility extension, poison-message handling, and HTTP error cases are reasonably coherent. Points are deducted because there are no skill-specific tests or reproducible execution artifacts; retry behavior, concurrency, empty queues, expiration, encoding compatibility, and long-running failure handling remain incomplete, and some examples rely on unspecified helpers or external configuration.
The name, description, trigger terms, JavaScript/TypeScript scope, and Node.js/browser coverage are clear enough for common queue operations. Points are deducted because non-fit scenarios, input/output contracts, and security-sensitive trigger boundaries are not defined; Chinese-language support is unspecified, and reachability of Azure endpoints from mainland-China networks is not established.
The document is well organized and includes installation, authentication, operation patterns, limits, best practices, platform differences, license metadata, and a version field. Points are deducted for the absence of a changelog, a pinned SDK version, explicit maintenance and update ownership, troubleshooting guidance, and fuller known-limitations disclosure; it relies on external assumptions such as SDK 12.x and Node.js 18+.
Examples cover queue creation, message lifecycle, batch receive, poison handling, and visibility extension, offering directly adaptable material for common coding tasks. Points are deducted because no representative outputs, test project, or end-to-end verification are provided, while production concerns such as retries, idempotency, monitoring, and configuration validation remain for the user to add.
The skill provides concrete API calls, parameters, limits, and one Microsoft Learn reference, while repository context shows CI and test infrastructure. Points are deducted because the supplied material contains no skill-specific tests, real CI coverage, or third-party execution evidence, so key API and example correctness cannot be independently reproduced from static reading alone.
- Do not place account keys, connection strings, or SAS tokens in source code, logs, or prompts; prefer least-privilege managed identity and confirm targets and recovery plans before deleting queues, clearing messages, or moving poison messages.
- This review did not execute code or verify SDK versions, Azure API behavior, or mainland-China network reachability; add pinned dependencies, integration tests, and regional connectivity validation before production use.
What it does & when to use it
This skill helps developers use the Azure Queue Storage JavaScript/TypeScript SDK for queue and message operations. It covers authentication with Microsoft Entra credentials, connection strings, shared keys, and SAS tokens. The guidance includes visibility timeouts, message encoding, batch receive, poison-message handling, and visibility extension for long-running work. It is a practical fit for Node.js applications that distribute tasks through Azure queues.
It shows how to install @azure/storage-queue and @azure/identity, configure storage-account environment variables, and create QueueServiceClient or QueueClient instances. It covers creating, listing, deleting, and inspecting queues, plus setting metadata. Message guidance includes sending, receiving, peeking, updating, deleting, and clearing messages, along with JSON serialization, Base64 or text encoding, queue/account SAS generation, RestError handling, and documented message limits.
- A TypeScript backend developer sending application tasks to Azure Queue Storage can use the send-message and message-lifetime examples.
- A team building a polling worker can use batch receive, processing, deletion, and visibility-timeout patterns.
- A developer handling repeatedly failing jobs can use dequeueCount and move poison messages to a separate queue.
- A service running long jobs can extend visibility with updateMessage and track the new popReceipt.
- A team targeting both Node.js and browser clients can use the platform matrix to choose supported authentication and access patterns.
Pros & cons
- Covers queue lifecycle, message lifecycle, and practical worker patterns.
- Provides examples for Entra credentials, connection strings, shared keys, and SAS.
- Includes batch processing, poison-message handling, message encoding, and long-running visibility extension.
- Documents Node.js/browser differences and key service limits.
- Requires an Azure Queue Storage account and valid credentials; the source does not specify pricing or required Azure permissions.
- Shared-key credentials and SAS generation are Node.js-only.
- Messages are limited to 64 KB, and the default visibility timeout is 30 seconds.
- The source provides no independent test result or update commitment for this individual skill.
How to install
Install the repository collection with: npx skills add microsoft/skills. Select the required skill in the wizard; the README says skills are installed to the chosen agent directory, such as .github/skills/ for GitHub Copilot. The source does not document a standalone installation command for this exact skill path. Install the SDK dependencies with: npm install @azure/storage-queue @azure/identity.
How to use
Give the coding agent a request such as: “Use @azure/storage-queue and QueueServiceClient to implement a batch worker with a 30-second visibility timeout.” Trigger phrases include “queue storage,” “send message,” “receive message,” and “visibility timeout.” Then configure AZURE_STORAGE_ACCOUNT_NAME and the environment variables for Entra credentials, a connection string, an account key, or SAS access.