Zarządzanie zasobami usługi Azure Cosmos DB dla bazy danych Apache Cassandra przy użyciu szablonów usługi Azure Resource Manager
DOTYCZY: Kasandra
Z tego artykułu dowiesz się, jak używać szablonów usługi Azure Resource Manager, aby ułatwić wdrażanie kont, przestrzeni kluczy i tabel usługi Azure Cosmos DB oraz zarządzanie nimi.
W tym artykule przedstawiono przykłady dotyczące tylko interfejsu API dla kont Cassandra, aby znaleźć przykłady dla innych kont typu interfejsu API, zobacz: używanie szablonów usługi Azure Resource Manager z interfejsem API usługi Azure Cosmos DB dla baz danych NoSQL, Gremlin, MongoDB, artykułami dotyczącymi tabel .
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ładowy szablon do nowego pliku JSON. Opcjonalnie można utworzyć plik JSON 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 witryny Azure Portal, interfejsu wiersza polecenia platformy Azure, programu Azure PowerShell i usługi GitHub.
Konto usługi Azure Cosmos DB dla bazy danych Cassandra z aprowizowaną przepływnością autoskalowania
Ten szablon tworzy konto usługi Azure Cosmos DB w dwóch regionach z opcjami spójności i trybu failover z przestrzenią kluczy i tabelą skonfigurowaną do automatycznego skalowania przepływności. Ten szablon jest również dostępny do wdrażania jednym kliknięciem z galerii szablonów szybkiego startu platformy 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])]"
]
}
]
}
Konto usługi Azure Cosmos DB dla bazy danych Cassandra ze standardową aprowizowaną przepływnością
Ten szablon tworzy konto usługi Azure Cosmos DB w dwóch regionach z opcjami spójności i trybu failover z przestrzenią kluczy i tabelą skonfigurowaną pod kątem standardowej przepływności. Ten szablon jest również dostępny do wdrażania jednym kliknięciem z galerii szablonów szybkiego startu platformy 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])]"
]
}
]
}
Następne kroki
Oto kilka dodatkowych zasobów: