Gestire le risorse di Azure Cosmos DB for Apache Cassandra con modelli di Azure Resource Manager
SI APPLICA A: Cassandra
Questo articolo illustra come usare i modelli di Azure Resource Manager per distribuire e gestire account, keyspace e tabelle di Azure Cosmos DB.
Questo articolo contiene esempi validi solo per gli account dell'API per Cassandra. Per trovare esempi per account di altri tipi di API, vedere gli articoli relativi all'uso dei modelli di Azure Resource Manager con l'API di Azure Cosmos DB per NoSQL, Gremlin, MongoDB e Tabella.
Importante
- I nomi degli account sono limitati a 44 caratteri, tutti in minuscolo.
- Per modificare i valori di velocità effettiva, ridistribuire il modello con UR/s aggiornati.
- Quando si aggiungono o si rimuovono posizioni in un account Azure Cosmos DB, non è possibile modificare contemporaneamente altre proprietà. Queste operazioni devono essere eseguite separatamente.
Per creare una delle risorse di Azure Cosmos DB seguenti, copiare il modello di esempio seguente in un nuovo file JSON. Facoltativamente, è possibile creare un file JSON dei parametri da usare quando si distribuiscono più istanze della stessa risorsa con nomi e valori diversi. Per distribuire modelli di Azure Resource Manager, è possibile scegliere tra varie soluzioni, tra cui portale di Azure, interfaccia della riga di comando di Azure, Azure PowerShell e GitHub.
Account Azure Cosmos DB per Cassandra con velocità effettiva con provisioning a scalabilità automatica
Questo modello consente di creare un account Azure Cosmos DB in due aree con le opzioni per la coerenza e il failover, con un keyspace e una tabella configurati per la velocità effettiva a scalabilità automatica. Questo modello è disponibile anche per la distribuzione con un clic dalla raccolta Modelli di avvio rapido di Azure.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.8.9.13224",
"templateHash": "9558567034094647188"
}
},
"parameters": {
"accountName": {
"type": "string",
"defaultValue": "[format('cassandra-{0}', uniqueString(resourceGroup().id))]",
"metadata": {
"description": "Cosmos DB account name, max length 44 characters"
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for the Cosmos DB account."
}
},
"primaryRegion": {
"type": "string",
"metadata": {
"description": "The primary replica region for the Cosmos DB account."
}
},
"secondaryRegion": {
"type": "string",
"metadata": {
"description": "The secondary replica region for the Cosmos DB account."
}
},
"defaultConsistencyLevel": {
"type": "string",
"defaultValue": "Eventual",
"metadata": {
"description": "The default consistency level of the Cosmos DB account."
},
"allowedValues": [
"Eventual",
"ConsistentPrefix",
"Session",
"BoundedStaleness",
"Strong"
]
},
"maxStalenessPrefix": {
"type": "int",
"defaultValue": 100000,
"metadata": {
"description": "Max stale requests. Required for BoundedStaleness. Valid ranges, Single Region: 10 to 2,147,483,647. Multi Region: 100,000 to 2,147,483,647."
},
"maxValue": 1000000,
"minValue": 10
},
"maxIntervalInSeconds": {
"type": "int",
"defaultValue": 300,
"metadata": {
"description": "Max lag time (seconds). Required for BoundedStaleness. Valid ranges, Single Region: 5 to 84,600. Multi Region: 300 to 86,400."
},
"maxValue": 86400,
"minValue": 5
},
"systemManagedFailover": {
"type": "bool",
"defaultValue": true,
"metadata": {
"description": "Enable system managed failover for regions"
},
"allowedValues": [
true,
false
]
},
"keyspaceName": {
"type": "string",
"metadata": {
"description": "The name for the Cassandra Keyspace"
}
},
"tableName": {
"type": "string",
"metadata": {
"description": "The name for the Cassandra table"
}
},
"autoscaleMaxThroughput": {
"type": "int",
"defaultValue": 1000,
"metadata": {
"description": "Maximum autoscale throughput for the Cassandra table"
},
"maxValue": 1000000,
"minValue": 1000
}
},
"variables": {
"consistencyPolicy": {
"Eventual": {
"defaultConsistencyLevel": "Eventual"
},
"ConsistentPrefix": {
"defaultConsistencyLevel": "ConsistentPrefix"
},
"Session": {
"defaultConsistencyLevel": "Session"
},
"BoundedStaleness": {
"defaultConsistencyLevel": "BoundedStaleness",
"maxStalenessPrefix": "[parameters('maxStalenessPrefix')]",
"maxIntervalInSeconds": "[parameters('maxIntervalInSeconds')]"
},
"Strong": {
"defaultConsistencyLevel": "Strong"
}
},
"locations": [
{
"locationName": "[parameters('primaryRegion')]",
"failoverPriority": 0,
"isZoneRedundant": false
},
{
"locationName": "[parameters('secondaryRegion')]",
"failoverPriority": 1,
"isZoneRedundant": false
}
]
},
"resources": [
{
"type": "Microsoft.DocumentDB/databaseAccounts",
"apiVersion": "2022-05-15",
"name": "[toLower(parameters('accountName'))]",
"location": "[parameters('location')]",
"kind": "GlobalDocumentDB",
"properties": {
"capabilities": [
{
"name": "EnableCassandra"
}
],
"consistencyPolicy": "[variables('consistencyPolicy')[parameters('defaultConsistencyLevel')]]",
"locations": "[variables('locations')]",
"databaseAccountOfferType": "Standard",
"enableAutomaticFailover": "[parameters('systemManagedFailover')]"
}
},
{
"type": "Microsoft.DocumentDB/databaseAccounts/cassandraKeyspaces",
"apiVersion": "2022-05-15",
"name": "[format('{0}/{1}', toLower(parameters('accountName')), parameters('keyspaceName'))]",
"properties": {
"resource": {
"id": "[parameters('keyspaceName')]"
}
},
"dependsOn": [
"[resourceId('Microsoft.DocumentDB/databaseAccounts', toLower(parameters('accountName')))]"
]
},
{
"type": "Microsoft.DocumentDB/databaseAccounts/cassandraKeyspaces/tables",
"apiVersion": "2022-05-15",
"name": "[format('{0}/{1}', format('{0}/{1}', toLower(parameters('accountName')), parameters('keyspaceName')), parameters('tableName'))]",
"properties": {
"resource": {
"id": "[parameters('tableName')]",
"schema": {
"columns": [
{
"name": "loadid",
"type": "uuid"
},
{
"name": "machine",
"type": "uuid"
},
{
"name": "cpu",
"type": "int"
},
{
"name": "mtime",
"type": "int"
},
{
"name": "load",
"type": "float"
}
],
"partitionKeys": [
{
"name": "machine"
},
{
"name": "cpu"
},
{
"name": "mtime"
}
],
"clusterKeys": [
{
"name": "loadid",
"orderBy": "asc"
}
]
}
},
"options": {
"autoscaleSettings": {
"maxThroughput": "[parameters('autoscaleMaxThroughput')]"
}
}
},
"dependsOn": [
"[resourceId('Microsoft.DocumentDB/databaseAccounts/cassandraKeyspaces', split(format('{0}/{1}', toLower(parameters('accountName')), parameters('keyspaceName')), '/')[0], split(format('{0}/{1}', toLower(parameters('accountName')), parameters('keyspaceName')), '/')[1])]"
]
}
]
}
Account di Azure Cosmos DB per Cassandra con velocità effettiva di provisioning standard
Questo modello crea un account Azure Cosmos DB in due aree con opzioni per coerenza e failover, con un keyspace e una tabella configurati per la velocità effettiva standard. Questo modello è disponibile anche per la distribuzione con un clic dalla raccolta Modelli di avvio rapido di Azure.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.8.9.13224",
"templateHash": "16028185346043260848"
}
},
"parameters": {
"accountName": {
"type": "string",
"defaultValue": "[format('cassandra-{0}', uniqueString(resourceGroup().id))]",
"metadata": {
"description": "Cosmos DB account name, max length 44 characters"
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for the Cosmos DB account."
}
},
"primaryRegion": {
"type": "string",
"metadata": {
"description": "The primary region for the Cosmos DB account."
}
},
"secondaryRegion": {
"type": "string",
"metadata": {
"description": "The secondary region for the Cosmos DB account."
}
},
"defaultConsistencyLevel": {
"type": "string",
"defaultValue": "Session",
"metadata": {
"description": "The default consistency level of the Cosmos DB account."
},
"allowedValues": [
"Eventual",
"ConsistentPrefix",
"Session",
"BoundedStaleness",
"Strong"
]
},
"maxStalenessPrefix": {
"type": "int",
"defaultValue": 100000,
"metadata": {
"description": "Max stale requests. Required for BoundedStaleness. Valid ranges, Single Region: 10 to 2,147,483,647. Multi Region: 100,000 to 2,147,483,647."
},
"maxValue": 2147483647,
"minValue": 10
},
"maxIntervalInSeconds": {
"type": "int",
"defaultValue": 300,
"metadata": {
"description": "Max lag time (seconds). Required for BoundedStaleness. Valid ranges, Single Region: 5 to 84600. Multi Region: 300 to 86400."
},
"maxValue": 86400,
"minValue": 5
},
"systemManagedFailover": {
"type": "bool",
"defaultValue": true,
"metadata": {
"description": "Enable system managed failover for regions"
},
"allowedValues": [
true,
false
]
},
"keyspaceName": {
"type": "string",
"metadata": {
"description": "The name for the Cassandra Keyspace"
}
},
"tableName": {
"type": "string",
"metadata": {
"description": "The name for the Cassandra table"
}
},
"throughput": {
"type": "int",
"defaultValue": 400,
"metadata": {
"description": "The throughput for Cassandra table"
},
"maxValue": 1000000,
"minValue": 400
}
},
"variables": {
"consistencyPolicy": {
"Eventual": {
"defaultConsistencyLevel": "Eventual"
},
"ConsistentPrefix": {
"defaultConsistencyLevel": "ConsistentPrefix"
},
"Session": {
"defaultConsistencyLevel": "Session"
},
"BoundedStaleness": {
"defaultConsistencyLevel": "BoundedStaleness",
"maxStalenessPrefix": "[parameters('maxStalenessPrefix')]",
"maxIntervalInSeconds": "[parameters('maxIntervalInSeconds')]"
},
"Strong": {
"defaultConsistencyLevel": "Strong"
}
},
"locations": [
{
"locationName": "[parameters('primaryRegion')]",
"failoverPriority": 0,
"isZoneRedundant": false
},
{
"locationName": "[parameters('secondaryRegion')]",
"failoverPriority": 1,
"isZoneRedundant": false
}
]
},
"resources": [
{
"type": "Microsoft.DocumentDB/databaseAccounts",
"apiVersion": "2022-05-15",
"name": "[toLower(parameters('accountName'))]",
"location": "[parameters('location')]",
"kind": "GlobalDocumentDB",
"properties": {
"capabilities": [
{
"name": "EnableCassandra"
}
],
"consistencyPolicy": "[variables('consistencyPolicy')[parameters('defaultConsistencyLevel')]]",
"locations": "[variables('locations')]",
"databaseAccountOfferType": "Standard",
"enableAutomaticFailover": "[parameters('systemManagedFailover')]"
}
},
{
"type": "Microsoft.DocumentDB/databaseAccounts/cassandraKeyspaces",
"apiVersion": "2022-05-15",
"name": "[format('{0}/{1}', toLower(parameters('accountName')), parameters('keyspaceName'))]",
"properties": {
"resource": {
"id": "[parameters('keyspaceName')]"
}
},
"dependsOn": [
"[resourceId('Microsoft.DocumentDB/databaseAccounts', toLower(parameters('accountName')))]"
]
},
{
"type": "Microsoft.DocumentDB/databaseAccounts/cassandraKeyspaces/tables",
"apiVersion": "2022-05-15",
"name": "[format('{0}/{1}', format('{0}/{1}', toLower(parameters('accountName')), parameters('keyspaceName')), parameters('tableName'))]",
"properties": {
"resource": {
"id": "[parameters('tableName')]",
"schema": {
"columns": [
{
"name": "loadid",
"type": "uuid"
},
{
"name": "machine",
"type": "uuid"
},
{
"name": "cpu",
"type": "int"
},
{
"name": "mtime",
"type": "int"
},
{
"name": "load",
"type": "float"
}
],
"partitionKeys": [
{
"name": "machine"
},
{
"name": "cpu"
},
{
"name": "mtime"
}
],
"clusterKeys": [
{
"name": "loadid",
"orderBy": "asc"
}
]
},
"options": {
"throughput": "[parameters('throughput')]"
}
}
},
"dependsOn": [
"[resourceId('Microsoft.DocumentDB/databaseAccounts/cassandraKeyspaces', split(format('{0}/{1}', toLower(parameters('accountName')), parameters('keyspaceName')), '/')[0], split(format('{0}/{1}', toLower(parameters('accountName')), parameters('keyspaceName')), '/')[1])]"
]
}
]
}
Passaggi successivi
Altre risorse: