Rychlý start: Vytvoření služby Azure Cosmos DB a kontejneru pomocí šablony ARM
PLATÍ PRO: NoSQL
Azure Cosmos DB je rychlá databáze NoSQL od Microsoftu s otevřenými rozhraními API pro libovolné škálování. Azure Cosmos DB můžete použít k rychlému vytváření a dotazování databází klíč/hodnota, databází dokumentů a grafových databází. Bez platební karty nebo předplatného Azure můžete nastavit bezplatný účet Vyzkoušet službu Azure Cosmos DB. Tento rychlý start se zaměřuje na proces nasazení šablony Azure Resource Manageru (šablony ARM) pro vytvoření databáze Azure Cosmos DB a kontejneru v rámci této databáze. Později můžete data uložit do tohoto kontejneru.
Šablona Azure Resource Manageru je soubor JSON (JavaScript Object Notation), který definuje infrastrukturu a konfiguraci projektu. Tato šablona používá deklarativní syntaxi. Popíšete zamýšlené nasazení, aniž byste museli psát posloupnost programovacích příkazů pro vytvoření nasazení.
Pokud vaše prostředí splňuje požadavky a jste obeznámeni s používáním šablon ARM, vyberte tlačítko Nasazení do Azure. Šablona se otevře v prostředí Azure Portal.
Požadavky
Předplatné Azure nebo bezplatný zkušební účet služby Azure Cosmos DB
-
Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.
-
Službu Azure Cosmos DB můžete vyzkoušet zdarma bez předplatného Azure a bez nutnosti závazku. Alternativně můžete vytvořit účet úrovně Free služby Azure Cosmos DB s prvních 1 000 RU/s a 25 GB úložiště zdarma. Emulátor služby Azure Cosmos DB můžete také použít s identifikátorem URI
https://localhost:8081
služby . Klíč, který se má použít s emulátorem, najdete v tématu Ověřování požadavků.
Kontrola šablony
Šablona použitá v tomto rychlém startu je jednou z šablon pro rychlý start Azure.
{
"$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'))]"
}
}
}
V šabloně jsou definované tři prostředky Azure:
Microsoft.DocumentDB/databaseAccounts: Vytvořte účet služby Azure Cosmos DB.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases: Vytvořte databázi Azure Cosmos DB.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers: Vytvořte kontejner Azure Cosmos DB.
Důležité
Poskytovatel Microsoft.DocumentDB/databaseAccounts
Azure Resource Manageru už mnoho let udržuje stejný název. To zajišťuje, že šablony napsané před lety jsou stále kompatibilní se stejným poskytovatelem, i když se vyvinul název služby a dílčí služby.
Další ukázky šablon Azure Cosmos DB najdete v galerii šablon pro rychlý start.
Nasazení šablony
Vyberte následující obrázek a přihlaste se k Azure a otevřete šablonu. Šablona vytvoří účet služby Azure Cosmos DB, databázi a kontejner.
Vyberte nebo zadejte následující hodnoty.
Pokud není zadaný, vytvořte prostředky Azure Cosmos DB pomocí výchozích hodnot.
- Předplatné: Vyberte předplatné Azure.
- Skupina prostředků: Vyberte Vytvořit nový, zadejte jedinečný název skupiny prostředků a klepněte na tlačítko OK.
- Umístění: Vyberte prosím umístění. Například USA – střed.
- Název účtu: Zadejte název účtu služby Azure Cosmos DB. Musí být globálně jedinečný.
- Umístění: Zadejte umístění, kam chcete vytvořit účet služby Azure Cosmos DB. Účet služby Azure Cosmos DB může být ve stejném umístění jako skupina prostředků.
- Primární oblast: Primární oblast repliky pro účet služby Azure Cosmos DB.
- Sekundární oblast: Sekundární oblast repliky pro účet služby Azure Cosmos DB.
- Výchozí úroveň konzistence: Výchozí úroveň konzistence pro účet služby Azure Cosmos DB.
- Maximální předpona neautnosti: Maximální zastaralá žádost. Požadováno pro ohraničovanou instalaci.
- Maximální interval v sekundách: Maximální doba prodlevy. Požadováno pro ohraničovanou instalaci.
- Název databáze: Název databáze Azure Cosmos DB.
- Název kontejneru: Název kontejneru Azure Cosmos DB.
- Propustnost: Propustnost kontejneru, minimální hodnota propustnosti je 400 RU/s.
- Souhlasím s podmínkami a ujednáními uvedenými nahoře: Toto políčko zaškrtněte.
Vyberte Koupit. Po úspěšném nasazení účtu služby Azure Cosmos DB se zobrazí oznámení:
K nasazení šablony se použije Azure Portal. Kromě webu Azure Portal můžete také použít Azure PowerShell, Azure CLI a rozhraní REST API. Další metody nasazení najdete v tématu Nasazení šablon.
Ověření nasazení
Pomocí webu Azure Portal můžete zkontrolovat účet služby Azure Cosmos DB, databázi a kontejner, nebo pomocí následujícího skriptu Azure CLI nebo Azure PowerShellu zobrazit seznam vytvořených tajných kódů.
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
Vyčištění prostředků
Pokud chcete pokračovat v práci s dalšími rychlými starty a kurzy, můžete tyto prostředky ponechat na místě. Pokud už ji nepotřebujete, odstraňte skupinu prostředků, která odstraní účet služby Azure Cosmos DB a související prostředky. Odstranění skupiny prostředků pomocí Azure CLI nebo Azure PowerShellu:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Další kroky
V tomto rychlém startu jste vytvořili účet služby Azure Cosmos DB, databázi a kontejner pomocí šablony ARM a ověřili jste nasazení. Další informace o službě Azure Cosmos DB a Azure Resource Manageru najdete v následujících článcích.
- Přečtěte si přehled služby Azure Cosmos DB
- Další informace o Azure Resource Manageru
- Získání dalších šablon Azure Cosmos DB Resource Manageru
- Pokoušíte se naplánovat kapacitu migrace do služby Azure Cosmos DB? Informace o stávajícím databázovém clusteru můžete použít k plánování kapacity.
- Pokud víte, že je počet virtuálních jader a serverů ve vašem existujícím databázovém clusteru, přečtěte si o odhadu jednotek žádostí pomocí virtuálních jader nebo virtuálních procesorů.
- Pokud znáte typické sazby požadavků pro vaši aktuální úlohu databáze, přečtěte si informace o odhadu jednotek žádostí pomocí plánovače kapacity služby Azure Cosmos DB.