name: azure-infra-bicep description: Create or update Azure infrastructure Bicep under infra/ for this project (Cosmos DB account/database/containers, Managed Identity, Container Apps for backend_api) using region japaneast, env dev, and Free Tier enabled. Use when asked to provision Azure infra or write Bicep templates.
Azure Infra Bicep (Cosmos DB + Container Apps)
Goal
Provision Azure resources with Bicep for this repo:
- Cosmos DB account (NoSQL) + database + containers
- Managed Identity (user-assigned) for API
- Container Apps environment + Container App for backend_api
- RBAC role assignment: Cosmos DB Built-in Data Contributor
Defaults for this project
- Environment:
dev - Location:
japaneast - Cosmos DB Free Tier: enabled
Workflow
- Create
infra/if missing. - Add
infra/main.bicepandinfra/params/dev.bicepparam. - Define parameters:
env,location,containerImage,containerCpu,containerMemory,containerPort. - Create resources:
- Cosmos DB account (SQL API) with
enableFreeTier: true. - SQL database (name:
real_estateor${env}-real-estate). - Containers:
property_types,buildings,units,parking_lots,payment_histories,attachments.- Partition key:
/id.
- Partition key:
- Log Analytics workspace.
- Container Apps environment.
- User-assigned Managed Identity.
- Container App for backend_api.
- Cosmos DB account (SQL API) with
- Configure Container App env vars:
COSMOS_ENDPOINT= Cosmos DB account endpointCOSMOS_DATABASE= database nameCOSMOS_CONTAINER_PREFIX=${env}
- Add RBAC role assignment:
- Role:
Cosmos DB Built-in Data Contributor - Scope: Cosmos DB account
- Principal: user-assigned managed identity
- Role:
- Keep the Bicep minimal and deployable at resource group scope.
Output files
infra/main.bicepinfra/params/dev.bicepparam
Notes
- Do not add README or extra docs for the skill.
- Prefer concise comments only when a block is complex.