Zarządzanie usługą Azure Cosmos DB dla zasobów tabel przy użyciu Bicep
DOTYCZY: Stół
Z tego artykułu dowiesz się, jak używać Bicep, aby ułatwić wdrażanie usługi Azure Cosmos DB dla kont i tabel usługi Azure Cosmos DB oraz zarządzanie nimi.
Ten artykuł zawiera przykłady dotyczące tylko interfejsu API dla kont tabel. Przykłady Bicep można również znaleźć w artykułach Cassandra, Gremlin, MongoDB i SQL .
Ważne
- Nazwy kont są ograniczone do 44 znaków, a wszystkie małe litery.
- Aby zmienić wartości przepływności, ponownie wdróż szablon przy użyciu zaktualizowanych jednostek RU/s.
- Podczas dodawania lub usuwania lokalizacji do konta usługi Azure Cosmos DB nie można jednocześnie modyfikować innych właściwości. Te operacje muszą być wykonywane oddzielnie.
Aby utworzyć dowolne z poniższych zasobów usługi Azure Cosmos DB, skopiuj poniższy przykład do nowego pliku bicep. Opcjonalnie można utworzyć plik parametrów do użycia podczas wdrażania wielu wystąpień tego samego zasobu o różnych nazwach i wartościach. Istnieje wiele sposobów wdrażania szablonów usługi Azure Resource Manager, w tym interfejsu wiersza polecenia platformy Azure, programu Azure PowerShell i usługi Cloud Shell.
Napiwek
Aby włączyć udostępnioną przepływność w przypadku korzystania z interfejsu API dla tabeli, włącz przepływność na poziomie konta w witrynie Azure Portal. Nie można ustawić współużytkowanej przepływności na poziomie konta przy użyciu Bicep.
Konto usługi Azure Cosmos DB dla tabeli z przepływnością autoskalowania
Utwórz konto usługi Azure Cosmos DB dla interfejsu API dla tabeli z jedną tabelą z przepływnością autoskalowania.
@description('Cosmos DB account name')
param accountName string = 'table-${uniqueString(resourceGroup().id)}'
@description('Location for the Cosmos DB account.')
param location string = resourceGroup().location
@description('The primary region for the Cosmos DB account.')
param primaryRegion string
@description('The secondary region for the Cosmos DB account.')
param secondaryRegion string
@description('The default consistency level of the Cosmos DB account.')
@allowed([
'Eventual'
'ConsistentPrefix'
'Session'
'BoundedStaleness'
'Strong'
])
param defaultConsistencyLevel string = 'Session'
@description('Max stale requests. Required for BoundedStaleness. Valid ranges, Single Region: 10 to 2147483647. Multi Region: 100000 to 2147483647.')
@minValue(10)
@maxValue(2147483647)
param maxStalenessPrefix int = 100000
@description('Max lag time (seconds). Required for BoundedStaleness. Valid ranges, Single Region: 5 to 84600. Multi Region: 300 to 86400.')
@minValue(5)
@maxValue(86400)
param maxIntervalInSeconds int = 300
@description('Enable system managed failover for regions')
param systemManagedFailover bool = true
@description('The name for the table')
param tableName string
@description('Maximum autoscale throughput for the table')
@minValue(1000)
@maxValue(1000000)
param autoscaleMaxThroughput int = 4000
var consistencyPolicy = {
Eventual: {
defaultConsistencyLevel: 'Eventual'
}
ConsistentPrefix: {
defaultConsistencyLevel: 'ConsistentPrefix'
}
Session: {
defaultConsistencyLevel: 'Session'
}
BoundedStaleness: {
defaultConsistencyLevel: 'BoundedStaleness'
maxStalenessPrefix: maxStalenessPrefix
maxIntervalInSeconds: maxIntervalInSeconds
}
Strong: {
defaultConsistencyLevel: 'Strong'
}
}
var locations = [
{
locationName: primaryRegion
failoverPriority: 0
isZoneRedundant: false
}
{
locationName: secondaryRegion
failoverPriority: 1
isZoneRedundant: false
}
]
resource account 'Microsoft.DocumentDB/databaseAccounts@2022-05-15' = {
name: toLower(accountName)
location: location
kind: 'GlobalDocumentDB'
properties: {
capabilities: [
{
name: 'EnableTable'
}
]
consistencyPolicy: consistencyPolicy[defaultConsistencyLevel]
locations: locations
databaseAccountOfferType: 'Standard'
enableAutomaticFailover: systemManagedFailover
}
}
resource table 'Microsoft.DocumentDB/databaseAccounts/tables@2022-05-15' = {
parent: account
name: tableName
properties: {
resource: {
id: tableName
}
options: {
autoscaleSettings: {
maxThroughput: autoscaleMaxThroughput
}
}
}
}
Konto usługi Azure Cosmos DB dla tabeli ze standardową aprowizowaną przepływnością
Utwórz konto usługi Azure Cosmos DB dla interfejsu API dla tabeli z jedną tabelą ze standardową przepływnością.
@description('Cosmos DB account name')
param accountName string = 'table-${uniqueString(resourceGroup().id)}'
@description('Location for the Cosmos DB account.')
param location string = resourceGroup().location
@description('The primary region for the Cosmos DB account.')
param primaryRegion string
@description('The secondary region for the Cosmos DB account.')
param secondaryRegion string
@description('The default consistency level of the Cosmos DB account.')
@allowed([
'Eventual'
'ConsistentPrefix'
'Session'
'BoundedStaleness'
'Strong'
])
param defaultConsistencyLevel string = 'Session'
@description('Max stale requests. Required for BoundedStaleness. Valid ranges, Single Region: 10 to 2147483647. Multi Region: 100000 to 2147483647.')
@minValue(10)
@maxValue(2147483647)
param maxStalenessPrefix int = 100000
@description('Max lag time (seconds). Required for BoundedStaleness. Valid ranges, Single Region: 5 to 84600. Multi Region: 300 to 86400.')
@minValue(5)
@maxValue(86400)
param maxIntervalInSeconds int = 300
@description('Enable system managed failover for regions')
param systemManagedFailover bool = true
@description('The name for the table')
param tableName string
@minValue(400)
@maxValue(1000000)
@description('The throughput for the table')
param throughput int = 400
var consistencyPolicy = {
Eventual: {
defaultConsistencyLevel: 'Eventual'
}
ConsistentPrefix: {
defaultConsistencyLevel: 'ConsistentPrefix'
}
Session: {
defaultConsistencyLevel: 'Session'
}
BoundedStaleness: {
defaultConsistencyLevel: 'BoundedStaleness'
maxStalenessPrefix: maxStalenessPrefix
maxIntervalInSeconds: maxIntervalInSeconds
}
Strong: {
defaultConsistencyLevel: 'Strong'
}
}
var locations = [
{
locationName: primaryRegion
failoverPriority: 0
isZoneRedundant: false
}
{
locationName: secondaryRegion
failoverPriority: 1
isZoneRedundant: false
}
]
resource account 'Microsoft.DocumentDB/databaseAccounts@2022-05-15' = {
name: toLower(accountName)
location: location
kind: 'GlobalDocumentDB'
properties: {
capabilities: [
{
name: 'EnableTable'
}
]
consistencyPolicy: consistencyPolicy[defaultConsistencyLevel]
locations: locations
databaseAccountOfferType: 'Standard'
enableAutomaticFailover: systemManagedFailover
}
}
resource table 'Microsoft.DocumentDB/databaseAccounts/tables@2022-05-15' = {
parent: account
name: tableName
properties: {
resource: {
id: tableName
}
options: {
throughput: throughput
}
}
}
Następne kroki
Oto kilka dodatkowych zasobów: