Cosmos DB Bicep Patterns
Account
resource cosmosAccount 'Microsoft.DocumentDB/databaseAccounts@2023-04-15' = {
name: '${resourcePrefix}-cosmos-${uniqueHash}'
location: location
kind: 'GlobalDocumentDB'
properties: {
databaseAccountOfferType: 'Standard'
locations: [
{
locationName: location
failoverPriority: 0
isZoneRedundant: false
}
]
consistencyPolicy: {
defaultConsistencyLevel: 'Session'
}
capabilities: [
{
name: 'EnableServerless'
}
]
}
}Database
resource cosmosDatabase 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases@2023-04-15' = {
parent: cosmosAccount
name: 'appdb'
properties: {
resource: {
id: 'appdb'
}
}
}Container
resource cosmosContainer 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers@2023-04-15' = {
parent: cosmosDatabase
name: 'items'
properties: {
resource: {
id: 'items'
partitionKey: {
paths: ['/partitionKey']
kind: 'Hash'
}
indexingPolicy: {
indexingMode: 'consistent'
includedPaths: [
{ path: '/*' }
]
}
}
}
}Autoscale Container
resource cosmosContainer 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers@2023-04-15' = {
parent: cosmosDatabase
name: 'items'
properties: {
resource: {
id: 'items'
partitionKey: {
paths: ['/partitionKey']
kind: 'Hash'
}
}
options: {
autoscaleSettings: {
maxThroughput: 4000
}
}
}
}Global Distribution
properties: {
locations: [
{
locationName: 'East US'
failoverPriority: 0
}
{
locationName: 'West US'
failoverPriority: 1
}
]
enableMultipleWriteLocations: true
}