Mengelola sumber daya Azure Cosmos DB Gremlin API menggunakan templat Azure Resource Manager
BERLAKU UNTUK:
API GREMLIN
Dalam artikel ini, Anda mempelajari cara menggunakan templat Azure Resource Manager untuk membantu menyebarkan dan mengelola akun Azure Cosmos DB, database, dan grafik Anda.
Artikel ini memiliki contoh untuk akun Gremlin API saja, untuk menemukan contoh untuk akun jenis API lainnya lihat: artikel Menggunakan templat Azure Resource Manager dengan API Azure Cosmos DB untuk Cassandra, SQL, MongoDB, Tabel.
Penting
- Nama akun dibatasi hingga 44 karakter, semuanya huruf kecil.
- Untuk mengubah nilai throughput, sebarkan ulang templat dengan RU/s yang diperbarui.
- Saat Anda menambahkan atau menghapus lokasi ke akun Azure Cosmos, Anda tidak dapat mengubah properti lain secara bersamaan. Operasi ini harus dilakukan secara terpisah.
Untuk membuat salah satu sumber daya Azure Cosmos DB di bawah ini, salin contoh templat berikut ke dalam file json baru. Anda dapat secara opsional membuat parameter file json untuk digunakan saat menyebarkan beberapa instans dari sumber daya yang sama dengan nama dan nilai yang berbeda. Ada banyak cara untuk menggunakan templat Azure Resource Manager, termasuk portal Microsoft Azure, Azure CLI, Azure PowerShell, dan GitHub.
Akun Azure Cosmos DB untuk Gremlin dengan throughput yang diprovisikan skala otomatis
Templat ini akan membuat akun Azure Cosmos untuk Gremlin API dengan database dan grafik dengan throughput skala otomatis. Templat ini juga tersedia untuk penyebaran satu klik dari Azure Quickstart Templates Gallery.
{
"$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": "18150046024853886723"
}
},
"parameters": {
"accountName": {
"type": "string",
"defaultValue": "[format('gremlin-{0}', uniqueString(resourceGroup().id))]",
"metadata": {
"description": "Cosmos DB account name"
}
},
"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": "Session",
"allowedValues": [
"Eventual",
"ConsistentPrefix",
"Session",
"BoundedStaleness",
"Strong"
],
"metadata": {
"description": "The default consistency level of the Cosmos DB account."
}
},
"maxStalenessPrefix": {
"type": "int",
"defaultValue": 100000,
"maxValue": 2147483647,
"minValue": 10,
"metadata": {
"description": "Max stale requests. Required for BoundedStaleness. Valid ranges, Single Region: 10 to 2147483647. Multi Region: 100000 to 2147483647."
}
},
"maxIntervalInSeconds": {
"type": "int",
"defaultValue": 300,
"maxValue": 86400,
"minValue": 5,
"metadata": {
"description": "Max lag time (seconds). Required for BoundedStaleness. Valid ranges, Single Region: 5 to 84600. Multi Region: 300 to 86400."
}
},
"systemManagedFailover": {
"type": "bool",
"defaultValue": true,
"metadata": {
"description": "Enable system managed failover for regions"
}
},
"databaseName": {
"type": "string",
"metadata": {
"description": "The name for the Gremlin database"
}
},
"graphName": {
"type": "string",
"metadata": {
"description": "The name for the Gremlin graph"
}
},
"autoscaleMaxThroughput": {
"type": "int",
"defaultValue": 1000,
"maxValue": 1000000,
"minValue": 1000,
"metadata": {
"description": "Maximum autoscale throughput for the graph"
}
}
},
"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": "EnableGremlin"
}
],
"consistencyPolicy": "[variables('consistencyPolicy')[parameters('defaultConsistencyLevel')]]",
"locations": "[variables('locations')]",
"databaseAccountOfferType": "Standard",
"enableAutomaticFailover": "[parameters('systemManagedFailover')]"
}
},
{
"type": "Microsoft.DocumentDB/databaseAccounts/gremlinDatabases",
"apiVersion": "2022-05-15",
"name": "[format('{0}/{1}', toLower(parameters('accountName')), parameters('databaseName'))]",
"properties": {
"resource": {
"id": "[parameters('databaseName')]"
}
},
"dependsOn": [
"[resourceId('Microsoft.DocumentDB/databaseAccounts', toLower(parameters('accountName')))]"
]
},
{
"type": "Microsoft.DocumentDB/databaseAccounts/gremlinDatabases/graphs",
"apiVersion": "2022-05-15",
"name": "[format('{0}/{1}', format('{0}/{1}', toLower(parameters('accountName')), parameters('databaseName')), parameters('graphName'))]",
"properties": {
"resource": {
"id": "[parameters('graphName')]",
"indexingPolicy": {
"indexingMode": "consistent",
"includedPaths": [
{
"path": "/*"
}
],
"excludedPaths": [
{
"path": "/myPathToNotIndex/*"
}
]
},
"partitionKey": {
"paths": [
"/myPartitionKey"
],
"kind": "Hash"
}
},
"options": {
"autoscaleSettings": {
"maxThroughput": "[parameters('autoscaleMaxThroughput')]"
}
}
},
"dependsOn": [
"[resourceId('Microsoft.DocumentDB/databaseAccounts/gremlinDatabases', split(format('{0}/{1}', toLower(parameters('accountName')), parameters('databaseName')), '/')[0], split(format('{0}/{1}', toLower(parameters('accountName')), parameters('databaseName')), '/')[1])]"
]
}
]
}
Akun Azure Cosmos DB untuk Gremlin dengan throughput yang diprovisikan standar
Templat ini akan membuat akun Azure Cosmos untuk Gremlin API dengan database dan grafik dengan throughput standar (manual). Templat ini juga tersedia untuk penyebaran satu klik dari Azure Quickstart Templates Gallery.
Langkah berikutnya
Berikut adalah beberapa sumber daya tambahan: