Rychlý start: Vytvoření služby Azure Cosmos DB a kontejneru pomocí Bicep
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í souboru Bicep 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.
Bicep je jazyk specifický pro doménu (DSL), který k nasazování prostředků Azure používá deklarativní syntaxi. Poskytuje stručnou syntaxi, spolehlivou bezpečnost typů a podporu pro opakované použití kódu. Bicep nabízí nejlepší prostředí pro vytváření obsahu pro řešení infrastruktury jako kódu v Azure.
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.
Kontrola souboru Bicep
Soubor Bicep použitý v tomto rychlém startu pochází ze šablon Azure Pro rychlý start.
@description('Azure Cosmos DB account name, max length 44 characters')
param accountName string = 'sql-${uniqueString(resourceGroup().id)}'
@description('Location for the Azure Cosmos DB account.')
param location string = resourceGroup().location
@description('The primary region for the Azure Cosmos DB account.')
param primaryRegion string
@description('The secondary region for the Azure Cosmos DB account.')
param secondaryRegion string
@allowed([
'Eventual'
'ConsistentPrefix'
'Session'
'BoundedStaleness'
'Strong'
])
@description('The default consistency level of the Cosmos DB account.')
param defaultConsistencyLevel string = 'Session'
@minValue(10)
@maxValue(2147483647)
@description('Max stale requests. Required for BoundedStaleness. Valid ranges, Single Region: 10 to 2147483647. Multi Region: 100000 to 2147483647.')
param maxStalenessPrefix int = 100000
@minValue(5)
@maxValue(86400)
@description('Max lag time (minutes). Required for BoundedStaleness. Valid ranges, Single Region: 5 to 84600. Multi Region: 300 to 86400.')
param maxIntervalInSeconds int = 300
@allowed([
true
false
])
@description('Enable system managed failover for regions')
param systemManagedFailover bool = true
@description('The name for the database')
param databaseName string = 'myDatabase'
@description('The name for the container')
param containerName string = 'myContainer'
@minValue(400)
@maxValue(1000000)
@description('The throughput for the container')
param throughput int = 400
var consistencyPolicy = {
Eventual: {
defaultConsistencyLevel: 'Eventual'
}
ConsistentPrefix: {
defaultConsistencyLevel: 'ConsistentPrefix'
}
Session: {
defaultConsistencyLevel: 'Session'
}
BoundedStaleness: {
defaultConsistencyLevel: 'BoundedStaleness'
maxStalenessPrefix: maxStalenessPrefix
maxIntervalInSeconds: maxIntervalInSeconds
}
Strong: {
defaultConsistencyLevel: 'Strong'
}
}
var locations = [
{
locationName: primaryRegion
failoverPriority: 0
isZoneRedundant: false
}
{
locationName: secondaryRegion
failoverPriority: 1
isZoneRedundant: false
}
]
resource account 'Microsoft.DocumentDB/databaseAccounts@2024-02-15-preview' = {
name: toLower(accountName)
location: location
kind: 'GlobalDocumentDB'
properties: {
consistencyPolicy: consistencyPolicy[defaultConsistencyLevel]
locations: locations
databaseAccountOfferType: 'Standard'
enableAutomaticFailover: systemManagedFailover
disableKeyBasedMetadataWriteAccess: true
}
}
resource database 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases@2024-02-15-preview' = {
parent: account
name: databaseName
properties: {
resource: {
id: databaseName
}
}
}
resource container 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers@2024-02-15-preview' = {
parent: database
name: containerName
properties: {
resource: {
id: 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: throughput
}
}
}
output location string = location
output name string = database.name
output resourceGroupName string = resourceGroup().name
output resourceId string = database.id
Tři prostředky Azure jsou definovány v souboru Bicep:
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.
Nasazení souboru Bicep
Uložte soubor Bicep jako main.bicep do místního počítače.
Nasaďte soubor Bicep pomocí Azure CLI nebo Azure PowerShellu.
az group create --name exampleRG --location eastus az deployment group create --resource-group exampleRG --template-file main.bicep --parameters primaryRegion=<primary-region> secondaryRegion=<secondary-region>
Poznámka:
Nahraďte <primární oblast> oblastí primární repliky pro účet služby Azure Cosmos DB, například WestUS. Sekundární oblast> nahraďte< sekundární oblastí repliky pro účet služby Azure Cosmos DB, například EastUS.
Po dokončení nasazení by se měla zobrazit zpráva, že nasazení bylo úspěšné.
Ověření nasazení
Pomocí webu Azure Portal, Azure CLI nebo Azure PowerShellu můžete zobrazit seznam nasazených prostředků ve skupině prostředků.
az resource list --resource-group exampleRG
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ů a její prostředky pomocí webu Azure Portal, Azure CLI nebo Azure PowerShellu.
az group delete --name exampleRG
Další kroky
V tomto rychlém startu jste vytvořili účet služby Azure Cosmos DB, databázi a kontejner pomocí souboru Bicep a ověřili jste nasazení. Další informace o službě Azure Cosmos DB a Bicep najdete v následujících článcích.
- Přečtěte si přehled služby Azure Cosmos DB.
- Přečtěte si další informace o Bicep.
- 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 aktuální úlohu databáze, přečtěte si o odhadu jednotek žádostí pomocí plánovače kapacity služby Azure Cosmos DB.