بداية سريعة: إنشاء Azure Cosmos DB وحاوية باستخدام قالب ARM
ينطبق على: NoSQL
قاعدة بيانات Azure المخصصةهي قاعدة بيانات NoSQL السريعة من Microsoft مع واجهات برمجة تطبيقات مفتوحة لأي سعة. يمكنك استخدام Azure Cosmos DB لإنشاء قواعد بيانات المفتاح / القيمة والاستعلام عنها بسرعة وقواعد بيانات المستندات وقواعد بيانات الرسم البياني. بدون بطاقة ائتمان أو اشتراك Azure، يمكنك إعداد حساب تجربة Azure Cosmos DB مجاني. يركز هذا التشغيل السريع على عملية نشر قالب Azure Resource Manager (قالب ARM) لإنشاء قاعدة بيانات Azure Cosmos DB وحاوية داخل قاعدة البيانات هذه. يمكنك لاحقًا تخزين البيانات في هذه الحاوية.
قالب Azure Resource Manager هو ملف JavaScript Object Notation (JSON) الذي يحدد البنية الأساسية والتكوين لمشروعك. يستخدم القالب عبارات توضيحية. يمكنك وصف النشر المقصود دون كتابة تسلسل أوامر البرمجة لإنشاء النشر.
إذا كانت بيئتك تلبي المتطلبات الأساسية وكنت معتاداً على استخدام قوالب "ARM"، فحدد زر "Deploy to Azure". سيتم فتح القالب في مدخل Azure.
المتطلبات الأساسية
اشتراك Azure أو حساب تجريبي مجاني من Azure Cosmos DB
-
إذا لم يكن لديك اشتراك في Azure، فأنشئ حساب Azure مجاني قبل أن تبدأ.
-
بدلاً من ذلك، يمكنك تجربة قاعدة بيانات Azure Cosmos مجاناً دون اشتراك Azure، مجاناً دون التزامات. بدلاً من ذلك، يمكنك إنشاء حساب Azure Cosmos DB مجاني ، مع أول 1000 RU/s و 25GB من التخزين مجاناً. يمكنك أيضًا استخدام محاكي Azure Cosmos DB مع عنوان URL المستخدم
https://localhost:8081
. لاستخدام المفتاح مع المحاكي، راجع مصادقة الطلبات.
مراجعة القالب
يُعدّ النموذج المستخدم في هذا التشغيل السريع مأخوذاً من قوالب التشغيل السريع من 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'))]"
}
}
}
تُعرّف ثلاثة موارد لـ Azure في القالب:
Microsoft.DocumentDB/databaseAccounts: إنشاء حساب Azure Cosmos DB.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases: إنشاء قاعدة بيانات Azure Cosmos DB.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers: إنشاء حاوية Azure Cosmos DB.
هام
يحتفظ موفر Microsoft.DocumentDB/databaseAccounts
Azure Resource Manager بنفس الاسم لسنوات عديدة. وهذا يضمن أن القوالب المكتوبة منذ سنوات لا تزال متوافقة مع نفس الموفر حتى مع تطور اسم الخدمة والخدمات الفرعية.
يمكن العثور على المزيد من نماذج قالب Azure Cosmos DB في معرض قوالب التشغيل السريع.
نشر القالب
حدد الصورة التالية لتسجيل الدخول إلى Azure وفتح قالب. ينشئ القالب حساب Azure Cosmos DB وقاعدة بيانات وحاوية.
حدد القيم التالية أو أدخلها.
ما لم يتم تحديده، استخدم القيم الافتراضية لإنشاء موارد Azure Cosmos DB.
- الاشتراك: «select an Azure subscription».
- مجموعة الموارد: حدد Create new، وأدخل اسمًا فريدًا لـ resourceGroup، ثم انقر فوق OK.
- الموقع: حدد موقعًا. على سبيل المثال، وسط الولايات المتحدة.
- اسم الحساب: أدخل اسما لحساب Azure Cosmos DB. يجب أن تكون فريدة من نوعها على مستوى العالم.
- الموقع: أدخل موقعا تريد إنشاء حساب Azure Cosmos DB فيه. يمكن أن يكون حساب Azure Cosmos DB في نفس موقع مجموعة الموارد.
- المنطقة الأساسية: منطقة النسخة المتماثلة الأساسية لحساب Azure Cosmos DB.
- المنطقة الثانوية: منطقة النسخ المتماثلة الثانوية لحساب Azure Cosmos DB.
- مستوى التناسق الافتراضي: مستوى التناسق الافتراضي لحساب Azure Cosmos DB.
- بادئة ماكس ستالنس: الحد الأقصى من الطلبات القديمة. مطلوب لـ BoundedStaleness.
- أقصى فترة بالثواني: أقصى فترة تأخير. مطلوب لـ BoundedStaleness.
- اسم قاعدة البيانات: اسم قاعدة بيانات Azure Cosmos DB.
- اسم الحاوية: اسم حاوية Azure Cosmos DB.
- الإنتاجية: إنتاجية الحاوية، الحد الأدنى لقيمة الإنتاج هو 400 وحدة طلب/ثانية.
- أوافق على الشروط والأحكام المذكورة أعلاه: حدد.
حدد شراء. بعد نشر حساب Azure Cosmos DB بنجاح، تحصل على إعلام:
يُستخدم مدخل Microsoft Azure لنشر القالب. بالإضافة إلى بوابة Azure، يمكنك أيضًا استخدام Azure PowerShell، Azure CLI, and REST API. لمعرفة طرق النشر الأخرى، راجع نشر القوالب.
التحقُّق من صحة عملية النشر
يمكنك إما استخدام مدخل Microsoft Azure للتحقق من حساب Azure Cosmos DB وقاعدة البيانات والحاوية أو استخدام البرنامج النصي Azure CLI أو Azure PowerShell التالي لسرد البيانات السرية التي تم إنشاؤها.
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
تنظيف الموارد
إذا كنت تخطط لمواصلة العمل بالبدايات السريعة والبرامج التعليمية اللاحقة، فقد ترغب في ترك هذه الموارد في مكانها. عند عدم الحاجة، احذف مجموعة الموارد، التي تحذف حساب Azure Cosmos DB والموارد ذات الصلة. لحذف مجموعة الموارد باستخدام Azure CLI أو Azure PowerShell:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
الخطوات التالية
في هذا التشغيل السريع، قمت بإنشاء حساب Azure Cosmos DB وقاعدة بيانات وحاوية باستخدام قالب ARM والتحقق من صحة النشر. لمعرفة المزيد حول Azure Cosmos DB وAzure Resource Manager، تابع إلى المقالات أدناه.
- اقرأ نظرة عامة على Azure Cosmos DB
- التعرف على المزيد حول Azure Resource Manager
- احصل على قوالب Azure Cosmos DB Resource Manager الأخرى
- هل تحاول القيام بتخطيط السعة للترحيل إلى Azure Cosmos DB؟ يمكنك استخدام معلومات حول نظام مجموعة قاعدة البيانات الموجودة لديك لـ تخطيط السعة.
- في حال كان كل ما تعرفه هو عدد vcores والخوادم في مجموعة قاعدة البيانات الحالية، فاقرأ عن تقدير وحدات الطلب باستخدام vCores أو vCPUs
- إذا كان كل ما تعرفه هو عدد vcores والخوادم الموجودة في مجموعة قاعدة البيانات، اقرأ عن تقدير وحدات الطلب باستخدام vCores أو vCPUs