Snabbstart: Skapa en Azure Cosmos DB och en container med hjälp av en ARM-mall
GÄLLER FÖR: NoSQL
Azure Cosmos DB är Microsofts snabba NoSQL-databas med öppna API:er för valfri skala. Du kan använda Azure Cosmos DB för att snabbt skapa och fråga efter nyckel-/värdedatabaser, dokumentdatabaser och grafdatabaser. Utan ett kreditkort eller en Azure-prenumeration kan du konfigurera ett kostnadsfritt Prova Azure Cosmos DB-konto. Den här snabbstarten fokuserar på processen att distribuera en Azure Resource Manager-mall (ARM-mall) för att skapa en Azure Cosmos DB-databas och en container i databasen. Du kan senare lagra data i den här containern.
En Azure Resource Manager-mall är en JSON-fil (JavaScript Object Notation) som definierar infrastrukturen och konfigurationen för projektet. Mallen använder deklarativ syntax. Du beskriver den avsedda distributionen utan att skriva sekvensen med programmeringskommandon för att skapa distributionen.
Om din miljö uppfyller förhandskraven och du är van att använda ARM-mallar väljer du knappen Distribuera till Azure. Mallen öppnas på Azure-portalen.
Förutsättningar
En Azure-prenumeration eller ett kostnadsfritt Utvärderingskonto för Azure Cosmos DB
-
Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.
-
Du kan prova Azure Cosmos DB kostnadsfritt, utan en Azure-prenumeration och utan något åtagande. Du kan också skapa ett kostnadsfritt Azure Cosmos DB-konto med de första 1 000 RU/s och 25 GB lagringsutrymme utan kostnad. Du kan också använda Azure Cosmos DB-emulatorn med en URI för
https://localhost:8081
. Den nyckel som ska användas med emulatorn finns i Autentisera begäranden.
Granska mallen
Mallen som används i den här snabbstarten kommer från Azure-snabbstartsmallar.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.26.54.24096",
"templateHash": "7578513359154607542"
}
},
"parameters": {
"accountName": {
"type": "string",
"defaultValue": "[format('sql-{0}', uniqueString(resourceGroup().id))]",
"metadata": {
"description": "Azure Cosmos DB account name, max length 44 characters"
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for the Azure Cosmos DB account."
}
},
"primaryRegion": {
"type": "string",
"metadata": {
"description": "The primary region for the Azure Cosmos DB account."
}
},
"secondaryRegion": {
"type": "string",
"metadata": {
"description": "The secondary region for the Azure 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,
"minValue": 10,
"maxValue": 2147483647,
"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,
"minValue": 5,
"maxValue": 86400,
"metadata": {
"description": "Max lag time (minutes). Required for BoundedStaleness. Valid ranges, Single Region: 5 to 84600. Multi Region: 300 to 86400."
}
},
"systemManagedFailover": {
"type": "bool",
"defaultValue": true,
"allowedValues": [
true,
false
],
"metadata": {
"description": "Enable system managed failover for regions"
}
},
"databaseName": {
"type": "string",
"defaultValue": "myDatabase",
"metadata": {
"description": "The name for the database"
}
},
"containerName": {
"type": "string",
"defaultValue": "myContainer",
"metadata": {
"description": "The name for the container"
}
},
"throughput": {
"type": "int",
"defaultValue": 400,
"minValue": 400,
"maxValue": 1000000,
"metadata": {
"description": "The throughput for the container"
}
}
},
"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": "2024-02-15-preview",
"name": "[toLower(parameters('accountName'))]",
"location": "[parameters('location')]",
"kind": "GlobalDocumentDB",
"properties": {
"consistencyPolicy": "[variables('consistencyPolicy')[parameters('defaultConsistencyLevel')]]",
"locations": "[variables('locations')]",
"databaseAccountOfferType": "Standard",
"enableAutomaticFailover": "[parameters('systemManagedFailover')]",
"disableKeyBasedMetadataWriteAccess": true
}
},
{
"type": "Microsoft.DocumentDB/databaseAccounts/sqlDatabases",
"apiVersion": "2024-02-15-preview",
"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/sqlDatabases/containers",
"apiVersion": "2024-02-15-preview",
"name": "[format('{0}/{1}/{2}', toLower(parameters('accountName')), parameters('databaseName'), parameters('containerName'))]",
"properties": {
"resource": {
"id": "[parameters('containerName')]",
"partitionKey": {
"paths": [
"/myPartitionKey"
],
"kind": "Hash"
},
"indexingPolicy": {
"indexingMode": "consistent",
"includedPaths": [
{
"path": "/*"
}
],
"excludedPaths": [
{
"path": "/myPathToNotIndex/*"
},
{
"path": "/_etag/?"
}
],
"compositeIndexes": [
[
{
"path": "/name",
"order": "ascending"
},
{
"path": "/age",
"order": "descending"
}
]
],
"spatialIndexes": [
{
"path": "/location/*",
"types": [
"Point",
"Polygon",
"MultiPolygon",
"LineString"
]
}
]
},
"defaultTtl": 86400,
"uniqueKeyPolicy": {
"uniqueKeys": [
{
"paths": [
"/phoneNumber"
]
}
]
}
},
"options": {
"throughput": "[parameters('throughput')]"
}
},
"dependsOn": [
"[resourceId('Microsoft.DocumentDB/databaseAccounts/sqlDatabases', toLower(parameters('accountName')), parameters('databaseName'))]"
]
}
],
"outputs": {
"location": {
"type": "string",
"value": "[parameters('location')]"
},
"name": {
"type": "string",
"value": "[parameters('databaseName')]"
},
"resourceGroupName": {
"type": "string",
"value": "[resourceGroup().name]"
},
"resourceId": {
"type": "string",
"value": "[resourceId('Microsoft.DocumentDB/databaseAccounts/sqlDatabases', toLower(parameters('accountName')), parameters('databaseName'))]"
}
}
}
Tre Azure-resurser definieras i mallen:
Microsoft.DocumentDB/databaseAccounts: Skapa ett Azure Cosmos DB-konto.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases: Skapa en Azure Cosmos DB-databas.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers: Skapa en Azure Cosmos DB-container.
Viktigt!
Azure Resource Manager-providern Microsoft.DocumentDB/databaseAccounts
har haft samma namn i många år. Detta säkerställer att mallar som skrevs för flera år sedan fortfarande är kompatibla med samma leverantör även när namnet på tjänsten och undertjänsterna har utvecklats.
Fler Azure Cosmos DB-mallexempel finns i snabbstartsmallgalleriet.
Distribuera mallen
Välj följande bild för att logga in på Azure och öppna en mall. Mallen skapar ett Azure Cosmos DB-konto, en databas och en container.
Välj eller ange följande värden.
Om det inte anges använder du standardvärdena för att skapa Azure Cosmos DB-resurserna.
- Prenumeration: välj en Azure-prenumeration.
- Resursgrupp: välj Skapa ny, ange ett unikt namn för resursgruppen och klicka sedan på OK.
- Plats: välj en plats. Välj till exempel USA, centrala.
- Kontonamn: ange ett namn för Azure Cosmos DB-kontot. Den måste vara globalt unik.
- Plats: Ange en plats där du vill skapa ditt Azure Cosmos DB-konto. Azure Cosmos DB-kontot kan finnas på samma plats som resursgruppen.
- Primär region: Den primära replikregionen för Azure Cosmos DB-kontot.
- Sekundär region: Den sekundära replikregionen för Azure Cosmos DB-kontot.
- Standardkonsekvensnivå: Standardkonsekvensnivån för Azure Cosmos DB-kontot.
- Max föråldringsprefix: Maximalt antal inaktuella begäranden. Krävs för BoundedStaleness.
- Maximalt intervall i sekunder: Maximal fördröjningstid. Krävs för BoundedStaleness.
- Databasnamn: Namnet på Azure Cosmos DB-databasen.
- Containernamn: Namnet på Azure Cosmos DB-containern.
- Dataflöde: Dataflödet för containern, minsta dataflödesvärde är 400 RU/s.
- Jag godkänner villkoren ovan: Välj.
Välj Köp. När Azure Cosmos DB-kontot har distribuerats får du ett meddelande:
Azure-portalen används för att distribuera mallen. Förutom Azure Portal kan du även använda Azure PowerShell, Azure CLI och REST API. Mer information om andra distributionsmetoder finns i Distribuera mallar.
Verifiera distributionen
Du kan antingen använda Azure Portal för att kontrollera Azure Cosmos DB-kontot, databasen och containern eller använda följande Azure CLI- eller Azure PowerShell-skript för att visa den hemlighet som skapats.
echo "Enter your Azure Cosmos DB account name:" &&
read cosmosAccountName &&
echo "Enter the resource group where the Azure Cosmos DB account exists:" &&
read resourcegroupName &&
az cosmosdb show -g $resourcegroupName -n $cosmosAccountName
Rensa resurser
Om du planerar att fortsätta arbeta med efterföljande snabbstarter och självstudier kanske du vill lämna dessa resurser på plats. När den inte längre behövs tar du bort resursgruppen, som tar bort Azure Cosmos DB-kontot och de relaterade resurserna. Så här tar du bort resursgruppen med hjälp av Azure CLI eller Azure PowerShell:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Nästa steg
I den här snabbstarten skapade du ett Azure Cosmos DB-konto, en databas och en container med hjälp av en ARM-mall och verifierade distributionen. Om du vill veta mer om Azure Cosmos DB och Azure Resource Manager fortsätter du till artiklarna nedan.
- Läs en översikt över Azure Cosmos DB
- Läs mer om Azure Resource Manager
- Hämta andra Azure Cosmos DB Resource Manager-mallar
- Försöker du planera kapacitet för en migrering till Azure Cosmos DB? Du kan använda information om ditt befintliga databaskluster för kapacitetsplanering.
- Om allt du vet är antalet virtuella kärnor och servrar i ditt befintliga databaskluster läser du om att uppskatta enheter för begäranden med virtuella kärnor eller virtuella kärnor
- Om du känner till vanliga begärandefrekvenser för din aktuella databasarbetsbelastning kan du läsa om att uppskatta enheter för begäranden med azure Cosmos DB-kapacitetshanteraren