azure-expert
Expert-level Microsoft Azure cloud platform, services, and architecture
Installation
Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.
View source ↗GuidesSkill instructions
Microsoft Azure Expert
Expert guidance for Microsoft Azure cloud platform, services, and cloud-native architecture.
Core Concepts
- Azure Resource Manager (ARM)
- Virtual Machines and App Services
- Azure Functions (serverless)
- Azure Storage (Blob, Queue, Table)
- Azure SQL Database
- Cosmos DB
- Azure Kubernetes Service (AKS)
- Azure Active Directory
Azure CLI
# Login
az login
# Create resource group
az group create --name myResourceGroup --location eastus
# Create VM
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image UbuntuLTS \
--admin-username azureuser \
--generate-ssh-keys
# Create App Service
az webapp create \
--resource-group myResourceGroup \
--plan myAppServicePlan \
--name myWebApp \
--runtime "NODE|14-lts"
# Create storage account
az storage account create \
--name mystorageaccount \
--resource-group myResourceGroup \
--location eastus \
--sku Standard_LRS
Azure Functions
import azure.functions as func
import logging
app = func.FunctionApp()
@app.function_name(name="HttpTrigger")
@app.route(route="hello")
def main(req: func.HttpRequest) -> func.HttpResponse:
logging.info('Python HTTP trigger function processed a request.')
name = req.params.get('name')
if not name:
try:
req_body = req.get_json()
name = req_body.get('name')
except ValueError:
pass
if name:
return func.HttpResponse(f"Hello, {name}!")
else:
return func.HttpResponse(
"Please pass a name",
status_code=400
)
@app.function_name(name="QueueTrigger")
@app.queue_trigger(arg_name="msg", queue_name="myqueue",
connection="AzureWebJobsStorage")
def queue_trigger(msg: func.QueueMessage):
logging.info(f'Python queue trigger function processed: {msg.get_body().decode("utf-8")}')
Cosmos DB
from azure.cosmos import CosmosClient, PartitionKey
endpoint = "https://myaccount.documents.azure.com:443/"
key = "YOUR_KEY"
client = CosmosClient(endpoint, key)
database = client.create_database_if_not_exists(id="myDatabase")
container = database.create_container_if_not_exists(
id="myContainer",
partition_key=PartitionKey(path="/userId")
)
# Create item
item = {
"id": "1",
"userId": "user123",
"name": "John Doe"
}
container.create_item(body=item)
# Query items
query = "SELECT * FROM c WHERE c.userId = @userId"
items = container.query_items(
query=query,
parameters=[{"name": "@userId", "value": "user123"}],
enable_cross_partition_query=True
)
for item in items:
print(item)
ARM Templates
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.Web/sites",
"apiVersion": "2021-02-01",
"name": "[parameters('webAppName')]",
"location": "[parameters('location')]",
"properties": {
"serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName'))]"
}
}
]
}
Best Practices
- Use managed identities
- Implement Azure Key Vault
- Tag resources properly
- Use ARM templates or Bicep
- Monitor with Azure Monitor
- Implement auto-scaling
- Use availability zones
Anti-Patterns
❌ Hardcoded credentials ❌ No resource tagging ❌ Single region deployment ❌ No backup strategy ❌ Ignoring cost optimization ❌ Not using managed services
Resources
- Azure Documentation: https://docs.microsoft.com/azure/
- Azure CLI: https://docs.microsoft.com/cli/azure/
Examples
Read the usage examples in the source repository.
View source ↗Source history
- Indexed on
- 2026-01-20
- Index updated
- 2026-01-26
- Branch
- main
Index and sync dates describe this directory. View the source repository for code history.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!