Hızlı Başlangıç: ARM şablonu kullanarak Azure Cosmos DB ve kapsayıcı oluşturma
UYGULANANLAR: NoSQL
Azure Cosmos DB, Microsoft'un her ölçekte açık API'lere sahip hızlı NoSQL veritabanıdır. Anahtar/değer veritabanlarını, belge veritabanlarını ve graf veritabanlarını hızla oluşturmak ve sorgulamak için Azure Cosmos DB'yi kullanabilirsiniz. Kredi kartı veya Azure aboneliği olmadan ücretsiz bir Azure Cosmos DB'yi Deneyin hesabı ayarlayabilirsiniz. Bu hızlı başlangıçta, bir Azure Cosmos DB veritabanı ve bu veritabanı içinde bir kapsayıcı oluşturmak için Azure Resource Manager şablonu (ARM şablonu) dağıtma işlemine odaklanılır. Verileri daha sonra bu kapsayıcıda depolayabilirsiniz.
Azure Resource Manager şablonu, projenizin altyapısını ve yapılandırmasını tanımlayan bir JavaScript Nesne Gösterimi (JSON) dosyasıdır. Bu şablonda, bildirim temelli sözdizimi kullanılır. Dağıtımı oluşturmak için programlama komutlarının sırasını yazmadan hedeflenen dağıtımınızı açıklarsınız.
Ortamınız önkoşulları karşılıyorsa ve ARM şablonlarını kullanma hakkında bilginiz varsa, Azure’a dağıtma düğmesini seçin. Şablon Azure portalda açılır.
Önkoşullar
Azure aboneliği veya ücretsiz Azure Cosmos DB deneme hesabı
-
Azure aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı oluşturun.
-
Azure Cosmos DB'yi ücretsiz olarak, Azure aboneliği olmadan ve hiçbir taahhüt gerektirmeden deneyebilirsiniz. Alternatif olarak, ilk 1000 RU/sn ve 25 GB depolama alanı ücretsiz olarak bir Azure Cosmos DB ücretsiz katmanı hesabı oluşturabilirsiniz. Azure Cosmos DB öykünücüsünün URI'sini
https://localhost:8081
de kullanabilirsiniz. Öykünücü ile kullanılacak anahtar için bkz . İsteklerin kimliğini doğrulama.
Şablonu gözden geçirme
Bu hızlı başlangıçta kullanılan şablon Azure Hızlı Başlangıç Şablonlarından alınmıştır.
{
"$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'))]"
}
}
}
Şablonda üç Azure kaynağı tanımlanır:
Microsoft.DocumentDB/databaseAccounts: Azure Cosmos DB hesabı oluşturun.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases: Azure Cosmos DB veritabanı oluşturun.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers: Azure Cosmos DB kapsayıcısı oluşturun.
Önemli
Azure Resource Manager sağlayıcısı, Microsoft.DocumentDB/databaseAccounts
uzun yıllar aynı adı korumunu sürdürmüştür. Bu, yıllar önce yazılan şablonların hizmet adı ve alt hizmetler geliştikçe bile aynı sağlayıcıyla uyumlu olmasını sağlar.
Hızlı başlangıç şablonu galerisinde daha fazla Azure Cosmos DB şablon örneği bulunabilir.
Şablonu dağıtma
Aşağıdaki görüntüyü seçerek Azure'da oturum açıp bir şablon açın. Şablon bir Azure Cosmos DB hesabı, veritabanı ve kapsayıcı oluşturur.
Aşağıdaki değerleri seçin veya girin.
Belirtilmediği sürece, Azure Cosmos DB kaynaklarını oluşturmak için varsayılan değerleri kullanın.
- Abonelik: Bir Azure aboneliği seçin.
- Kaynak grubu: Yeni oluştur'u seçin, kaynak grubu için benzersiz bir ad girin ve tamam'a tıklayın.
- Konum: Bir konum seçin. Örneğin Orta ABD.
- Hesap Adı: Azure Cosmos DB hesabı için bir ad girin. Genel olarak benzersiz olmalıdır.
- Konum: Azure Cosmos DB hesabınızı oluşturmak istediğiniz konumu girin. Azure Cosmos DB hesabı kaynak grubuyla aynı konumda olabilir.
- Birincil Bölge: Azure Cosmos DB hesabının birincil çoğaltma bölgesi.
- İkincil bölge: Azure Cosmos DB hesabının ikincil çoğaltma bölgesi.
- Varsayılan Tutarlılık Düzeyi: Azure Cosmos DB hesabı için varsayılan tutarlılık düzeyi.
- Maksimum Eskime Ön Eki: En fazla eski istek. BoundedStaleness için gereklidir.
- Saniye cinsinden Maksimum Aralık: Maksimum gecikme süresi. BoundedStaleness için gereklidir.
- Veritabanı Adı: Azure Cosmos DB veritabanının adı.
- Kapsayıcı Adı: Azure Cosmos DB kapsayıcısının adı.
- Aktarım hızı: Kapsayıcının aktarım hızı, en düşük aktarım hızı değeri 400 RU/sn'dir.
- Yukarıda belirtilen hüküm ve koşulları kabul ediyorum: Seçin.
Satın al'ı seçin. Azure Cosmos DB hesabı başarıyla dağıtıldıktan sonra bir bildirim alırsınız:
Şablonu dağıtmak için Azure portalı kullanılır. Azure portalına ek olarak Azure PowerShell, Azure CLI ve REST API'yi de kullanabilirsiniz. Diğer dağıtım yöntemlerini öğrenmek için bkz . Şablonları dağıtma.
Dağıtımı doğrulama
Azure Cosmos DB hesabını, veritabanını ve kapsayıcıyı denetlemek için Azure portalını kullanabilir veya oluşturulan gizli diziyi listelemek için aşağıdaki Azure CLI veya Azure PowerShell betiğini kullanabilirsiniz.
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
Kaynakları temizleme
Sonraki hızlı başlangıçlar ve öğreticilerle çalışmaya devam etmek istiyorsanız, bu kaynakları yerinde bırakmak isteyebilirsiniz. Artık gerekli olmadığında kaynak grubunu silin; bu da Azure Cosmos DB hesabını ve ilgili kaynakları siler. Azure CLI veya Azure PowerShell kullanarak kaynak grubunu silmek için:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Sonraki adımlar
Bu hızlı başlangıçta ARM şablonu kullanarak bir Azure Cosmos DB hesabı, veritabanı ve kapsayıcı oluşturdunuz ve dağıtımı doğruladunuz. Azure Cosmos DB ve Azure Resource Manager hakkında daha fazla bilgi edinmek için aşağıdaki makalelere geçin.
- Azure Cosmos DB'ye Genel Bakış
- Azure Resource Manager hakkında daha fazla bilgi edinin
- Diğer Azure Cosmos DB Resource Manager şablonlarını alma
- Azure Cosmos DB'ye geçiş için kapasite planlaması yapmaya mı çalışıyorsunuz? Kapasite planlaması için mevcut veritabanı kümeniz hakkındaki bilgileri kullanabilirsiniz.
- Tek bildiğiniz mevcut veritabanı kümenizdeki sanal çekirdek ve sunucu sayısıysa, sanal çekirdek veya vCPU kullanarak istek birimlerini tahmin etme hakkında bilgi edinin
- Geçerli veritabanı iş yükünüz için tipik istek oranlarını biliyorsanız Azure Cosmos DB kapasite planlayıcısı kullanarak istek birimlerini tahmin etme hakkında bilgi edinin