skills/devops/azure-resources/SKILL.md
Use when provisioning Azure resources — Service Bus, Cosmos DB, SQL Server — for microservices.
npx skillsauth add faysilalshareef/dotnet-ai-kit azure-resourcesInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
{company}-{domain}-{side}query-subscription, processor-subscription{company}-{env}-rg# Create topic
az servicebus topic create \
--resource-group {company}-{env}-rg \
--namespace-name {company}-servicebus \
--name {company}-{domain}-commands \
--enable-partitioning false \
--default-message-time-to-live P7D
# Create subscription with session support
az servicebus topic subscription create \
--resource-group {company}-{env}-rg \
--namespace-name {company}-servicebus \
--topic-name {company}-{domain}-commands \
--name query-subscription \
--requires-session true \
--max-delivery-count 10
az servicebus topic subscription create \
--resource-group {company}-{env}-rg \
--namespace-name {company}-servicebus \
--topic-name {company}-{domain}-commands \
--name processor-subscription \
--requires-session true \
--max-delivery-count 10
# Create Cosmos DB account
az cosmosdb create \
--name {company}-cosmos \
--resource-group {company}-{env}-rg \
--default-consistency-level Session \
--enable-analytical-storage false
# Create database
az cosmosdb sql database create \
--account-name {company}-cosmos \
--resource-group {company}-{env}-rg \
--name {domain}-db
# Create container with hierarchical partition key
az cosmosdb sql container create \
--account-name {company}-cosmos \
--resource-group {company}-{env}-rg \
--database-name {domain}-db \
--name invoices \
--partition-key-path "/merchantId" "/reportMonth" "/discriminator" \
--throughput 400
# Create SQL Database
az sql db create \
--resource-group {company}-{env}-rg \
--server {company}-sql-{env} \
--name {domain}-command-db \
--service-objective S1
az sql db create \
--resource-group {company}-{env}-rg \
--server {company}-sql-{env} \
--name {domain}-query-db \
--service-objective S1
{
"ConnectionStrings": {
"CommandDb": "Server={company}-sql-{env}.database.windows.net;Database={domain}-command-db;Authentication=Active Directory Default;",
"QueryDb": "Server={company}-sql-{env}.database.windows.net;Database={domain}-query-db;Authentication=Active Directory Default;"
},
"ServiceBus": {
"ConnectionString": "{company}-servicebus.servicebus.windows.net"
},
"CosmosDb": {
"Endpoint": "https://{company}-cosmos.documents.azure.com:443/",
"DatabaseName": "{domain}-db"
}
}
Resource Type | Naming Pattern | Example
---------------- | ----------------------------------- | -------
Resource Group | {company}-{env}-rg | acme-prod-rg
Service Bus | {company}-servicebus | acme-servicebus
Topic | {company}-{domain}-{side} | acme-order-commands
Subscription | {consumer}-subscription | query-subscription
SQL Server | {company}-sql-{env} | acme-sql-prod
SQL Database | {domain}-{side}-db | order-command-db
Cosmos Account | {company}-cosmos | acme-cosmos
Cosmos Database | {domain}-db | order-db
ACR | {company}acr | acmeacr
AKS | {company}-aks-{env} | acme-aks-prod
| Anti-Pattern | Correct Approach | |---|---| | Shared database across services | Separate DB per service (command/query) | | Missing session support | Enable sessions for ordered processing | | Unlimited delivery count | Set max-delivery-count (e.g., 10) | | Production resources without backup | Enable geo-redundancy and backups |
# Find connection strings
grep -r "ConnectionString\|ServiceBus\|CosmosDb" --include="*.json" src/
# Find Azure CLI scripts
find . -name "*.sh" -o -name "*.ps1" | head -10
# Find resource naming
grep -r "{company}" --include="*.yaml" deploy/
data-ai
Use when about to claim work is complete, fixed, passing, or ready — before committing, creating PRs, or moving to the next task. Requires running verification commands and confirming output before making any success claims.
development
Use when encountering any bug, test failure, build error, or unexpected behavior — before proposing fixes or making changes.
development
Use when checkpointing, wrapping up, or handing off an AI-assisted development session.
development
Use when following the Specification-Driven Development lifecycle from plan through ship.