Quickstart: Een Azure Cosmos DB en een container maken met behulp van een ARM-sjabloon
VAN TOEPASSING OP: NoSQL
Azure Cosmos DB is de snelle NoSQL-database van Microsoft, met open API's voor elke schaal. U kunt Azure Cosmos DB gebruiken om snel databases voor sleutels en waarden, documentdatabases en grafiekdatabases te maken en te doorzoeken. Zonder een creditcard of een Azure-abonnement kunt u een gratis Azure Cosmos DB-account instellen. Deze quickstart is gericht op het implementeren van een Azure Resource Manager-sjabloon (ARM-sjabloon) voor het maken van een Azure Cosmos DB-database en een container in die database. U kunt later gegevens opslaan in deze container.
Een Azure Resource Manager-sjabloon is een JSON-bestand (JavaScript Object Notation) dat de infrastructuur en configuratie voor uw project definieert. Voor de sjabloon is declaratieve syntaxis vereist. U beschrijft de beoogde implementatie zonder de reeks programmeeropdrachten te schrijven om de implementatie te maken.
Als uw omgeving voldoet aan de vereisten en u benkend bent met het gebruik van ARM-sjablonen, selecteert u de knop Implementeren naar Azure. De sjabloon wordt in Azure Portal geopend.
Vereisten
Een Azure-abonnement of gratis Azure Cosmos DB-proefaccount
-
Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.
-
U kunt Azure Cosmos DB gratis proberen, zonder een Azure-abonnement en zonder toezegging. U kunt ook een gratis Azure Cosmos DB-account maken met de eerste 1000 RU/s en 25 GB opslagruimte. U kunt ook de Azure Cosmos DB-emulator gebruiken met een URI van
https://localhost:8081
. Zie Aanvragen verifiëren voor de sleutel die u nodig hebt voor de emulator.
De sjabloon controleren
De sjabloon die in deze quickstart wordt gebruikt, komt uit Azure-snelstartsjablonen.
{
"$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'))]"
}
}
}
Er worden drie Azure-resources gedefinieerd in de sjabloon:
Microsoft.DocumentDB/databaseAccounts: Maak een Azure Cosmos DB-account.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases: Maak een Azure Cosmos DB-database.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers: Maak een Azure Cosmos DB-container.
Belangrijk
De Azure Resource Manager-provider, Microsoft.DocumentDB/databaseAccounts
heeft al vele jaren dezelfde naam behouden. Dit zorgt ervoor dat sjablonen die jaren geleden zijn geschreven, nog steeds compatibel zijn met dezelfde provider, zelfs als de naam van de service en subservices zijn ontwikkeld.
Meer voorbeelden van Azure Cosmos DB-sjablonen vindt u in de galerie met quickstart-sjablonen.
De sjabloon implementeren
Selecteer de volgende afbeelding om u aan te melden bij Azure en een sjabloon te openen. Met de sjabloon maakt u een Azure Cosmos DB-account, een database en een container.
Typ of selecteer de volgende waarden.
Tenzij deze is opgegeven, gebruikt u de standaardwaarden om de Azure Cosmos DB-resources te maken.
- Abonnement: selecteer een Azure-abonnement.
- Resourcegroep: selecteer Nieuwe maken, geef een unieke naam op voor de resourcegroep en klik op OK.
- Locatie: selecteer een locatie. Bijvoorbeeld VS - centraal.
- Accountnaam: voer een naam in voor het Azure Cosmos DB-account. De naam moet wereldwijd uniek zijn.
- Locatie: voer een locatie in waar u uw Azure Cosmos DB-account wilt maken. Het Azure Cosmos DB-account kan zich op dezelfde locatie bevinden als de resourcegroep.
- Primaire regio: de primaire replicaregio voor het Azure Cosmos DB-account.
- Secundaire regio: de secundaire replicaregio voor het Azure Cosmos DB-account.
- Standaardconsistentieniveau: het standaardconsistentieniveau voor het Azure Cosmos DB-account.
- Max Staleness Voorvoegsel: Max verouderde aanvragen. Vereist voor BoundedStaleness.
- Maximuminterval in seconden: maximale vertragingstijd. Vereist voor BoundedStaleness.
- Databasenaam: de naam van de Azure Cosmos DB-database.
- Containernaam: de naam van de Azure Cosmos DB-container.
- Doorvoer: de doorvoer voor de container, de minimale doorvoerwaarde is 400 RU/s.
- Ik ga akkoord met de bovenstaande voorwaarden: selecteer dit.
Selecteer Kopen. Nadat het Azure Cosmos DB-account is geïmplementeerd, krijgt u een melding:
Voor het implementeren van de sjabloon wordt de Azure-portal gebruikt. Naast Azure Portal kunt u ook de Azure PowerShell, Azure CLI en REST API gebruiken. Zie Sjablonen implementeren voor meer informatie over andere implementatiemethoden.
De implementatie valideren
U kunt Azure Portal gebruiken om het Azure Cosmos DB-account, de database en de container te controleren of het volgende Azure CLI- of Azure PowerShell-script te gebruiken om het geheim weer te geven dat is gemaakt.
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
Resources opschonen
Als u van plan bent om verder te gaan met volgende snelstarts en zelfstudies, kunt u deze resources het beste intact laten. Wanneer u deze niet meer nodig hebt, verwijdert u de resourcegroep, waarmee het Azure Cosmos DB-account en de gerelateerde resources worden verwijderd. Zo verwijdert u de resourcegroep met behulp van Azure CLI of Azure PowerShell:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Volgende stappen
In deze quickstart hebt u een Azure Cosmos DB-account, een database en een container gemaakt met behulp van een ARM-sjabloon en de implementatie gevalideerd. Als u meer wilt weten over Azure Cosmos DB en Azure Resource Manager, vindt u meer informatie in de onderstaande artikelen.
- Een overzicht van Azure Cosmos DB lezen
- Meer informatie over Azure Resource Manager
- Andere Azure Cosmos DB Resource Manager-sjablonen bekijken
- Wilt u capaciteitsplanning uitvoeren voor een migratie naar Azure Cosmos DB? U kunt informatie over uw bestaande databasecluster gebruiken voor capaciteitsplanning.
- Als alles wat u weet het aantal vcores en servers in uw bestaande databasecluster is, leest u meer over het schatten van aanvraageenheden met behulp van vCores of vCPU's
- Als u typische aanvraagtarieven voor uw huidige databaseworkload kent, leest u meer over het schatten van aanvraageenheden met behulp van azure Cosmos DB-capaciteitsplanner