Azure SDK Integration
SkillFiles & storageAzure is a pack that lets your AI work with Microsoft Azure cloud services. Once added, your AI can manage your Azure infrastructure, monitor your applications, and deploy resources on your behalf.
Use Azure SDK Integration in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add Azure SDK Integration and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use the Azure SDK Integration skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; Ahel provides instructions and does not run this skill.
No other account needed.
Add the pack, then ask your AI to manage your Azure resources, check on an application, or deploy new infrastructure.
What your AI can do with it
- Manage your Azure cloud resources
- Monitor your applications
- Deploy infrastructure and resources
- Work with Azure services
What this skill tells your AI
The instructions your AI receives, as published by claude-dev-suite/claude-dev-suite in skills/cloud/azure/SKILL.md and read by Ahel’s review.
Azure Functions
import { app, HttpRequest, HttpResponseInit, InvocationContext } from '@azure/functions';
app.http('getProduct', {
methods: ['GET'],
authLevel: 'anonymous',
route: 'products/{id}',
handler: async (req: HttpRequest, context: InvocationContext): Promise<HttpResponseInit> => {
const id = req.params.id;
const product = await getProduct(id);
return { status: 200, jsonBody: product };
},
});
// Queue trigger
app.serviceBusQueue('processOrder', {
connection: 'ServiceBusConnection',
queueName: 'orders',
handler: async (message: unknown, context: InvocationContext) => {
const order = message as Order;
await processOrder(order);
},
});
// Timer trigger (cron)
app.timer('dailyCleanup', {
schedule: '0 0 2 * * *',
handler: async (timer, context) => {
await cleanupExpiredSessions();
},
});
Cosmos DB
import { CosmosClient } from '@azure/cosmos';
const client = new CosmosClient(process.env.COSMOS_CONNECTION_STRING!);
const container = client.database('mydb').container('products');
// Create
await container.items.create({ id: '123', name: 'Widget', price: 19.99, category: 'tools' });
// Read
const { resource } = await container.item('123', 'tools').read();
// Query
const { resources } = await container.items
.query({
query: 'SELECT * FROM c WHERE c.category = @cat AND c.price < @maxPrice',
parameters: [
{ name: '@cat', value: 'tools' },
{ name: '@maxPrice', value: 50 },
],
})
.fetchAll();
Blob Storage
import { BlobServiceClient } from '@azure/storage-blob';
const blobService = BlobServiceClient.fromConnectionString(process.env.AZURE_STORAGE_CONNECTION!);
const container = blobService.getContainerClient('uploads');
// Upload
const blockBlob = container.getBlockBlobClient(`files/${filename}`);
await blockBlob.uploadData(buffer, {
blobHTTPHeaders: { blobContentType: contentType },
});
// Download
const downloadResponse = await blockBlob.download(0);
const content = await streamToBuffer(downloadResponse.readableStreamBody!);
// Generate SAS URL
import { generateBlobSASQueryParameters, BlobSASPermissions } from '@azure/storage-blob';
const sasUrl = blockBlob.generateSasUrl({
permissions: BlobSASPermissions.parse('r'),
expiresOn: new Date(Date.now() + 3600 * 1000),
});
Service Bus
import { ServiceBusClient } from '@azure/service-bus';
const sbClient = new ServiceBusClient(process.env.SERVICE_BUS_CONNECTION!);
// Send
const sender = sbClient.createSender('orders');
await sender.sendMessages({ body: { orderId: '123', status: 'created' } });
// Receive
const receiver = sbClient.createReceiver('orders');
const messages = await receiver.receiveMessages(10, { maxWaitTimeInMs: 5000 });
for (const msg of messages) {
await processOrder(msg.body);
await receiver.completeMessage(msg);
}
Authentication (DefaultAzureCredential)
import { DefaultAzureCredential } from '@azure/identity';
// Works in all environments: local dev, Azure VMs, App Service, AKS
const credential = new DefaultAzureCredential();
// Use with any Azure SDK client
const blobService = new BlobServiceClient(
`https://${accountName}.blob.core.windows.net`,
credential,
);
Anti-Patterns
| Anti-Pattern | Fix |
|---|---|
| Connection strings in code | Use DefaultAzureCredential + managed identity |
| Not using partition keys (Cosmos DB) | Design partition key for query patterns |
| Polling Service Bus | Use event-driven triggers or receiveMessages |
| No retry configuration | Azure SDKs retry automatically — configure retryOptions |
| Hardcoded resource names | Use environment variables or App Configuration |
Production Checklist
- Managed identity for authentication (no secrets in config)
- DefaultAzureCredential for local + cloud parity
- Key Vault for secrets management
- Application Insights for monitoring
- Resource tagging for cost management
- Network security (VNet integration, private endpoints)
Signals
- GitHub stars
- 40
- Forks
- 7
- Last commit
- Oct 2026
- Hacker News mentions
- 20
Ahel review
S4info
community integration, published by claude-dev-suite, not azure
Automated review, not a security audit. Ruleset v1+k2.
Advanced
- Item type
- skill
- Key
azure- Source
- github.com/claude-dev-suite/claude-dev-suite
github.com/claude-dev-suite/claude-dev-suite