إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
قاعدة بيانات Azure المخصصةهي قاعدة بيانات NoSQL السريعة من Microsoft مع واجهات برمجة تطبيقات مفتوحة لأي سعة. يمكنك استخدام Azure Cosmos DB لإنشاء قواعد بيانات المفتاح / القيمة والاستعلام عنها بسرعة وقواعد بيانات المستندات وقواعد بيانات الرسم البياني. بدون بطاقة ائتمان أو اشتراك Azure، يمكنك إعداد حساب تجربة Azure Cosmos DB مجاني. يركز هذا التشغيل السريع على عملية النشر عبر Terraform لإنشاء قاعدة بيانات Azure Cosmos وحاوية داخل قاعدة البيانات هذه. يمكنك لاحقًا تخزين البيانات في هذه الحاوية.
المتطلبات الأساسية
اشتراك Azure أو حساب تجريبي مجاني من Azure Cosmos DB
- إذا لم يكن لديك حساب Azure، فأنشئ حساباً مجانياً قبل أن تبدأ.
يجب تثبيت Terraform على الكمبيوتر المحلي. يمكن العثور على إرشادات التثبيت هنا.
مراجعة ملف Terraform
يمكن العثور على ملفات Terraform المستخدمة في هذا التشغيل السريع في مستودع نماذج terraform. إنشاء الملفات الثلاثة التالية: providers.tf main.tf variables.tf. يمكن تعيين المتغيرات في سطر الأوامر أو بدلا من ذلك مع ملف terraforms.tfvars.
معلمات تيرافورم الرئيسية
يلخص الجدول التالي المتغيرات الحرجة المستخدمة في هذه البداية السريعة، ونطاقها، وقيودها، وقيم الأمثلة.
| المعلمة | Scope | الوصف والقيود | مثال للقيمة |
|---|---|---|---|
prefix |
التسمية | بادئة تستخدم لجميع أسماء الموارد. يجب أن يكون الحروف صغيرة، أبجديا رقميا، وفريدا لكل اشتراك. | cosmosdemo |
location |
مجموعة الموارد | Azure Region لمجموعة الموارد. هذا الموقع ينطبق فقط على مجموعة الموارد، وليس على حساب قاعدة بيانات كوزموس. | eastus |
cosmosdb_account_location |
حساب قاعدة بيانات كوزموس | Azure region for the Azure Cosmos DB account. يمكن أن يختلف هذا عن موقع مجموعة الموارد. | eastus |
throughput |
قاعدة البيانات (RU/s) | تم توفير معدل النقل لقاعدة بيانات SQL بوحدات طلب في الثانية (RU/s). يجب أن يكون بين 400 و1,000,000 روبي في الثانية. | 400 |
ملف Terraform الموفر
terraform {
required_version = ">= 1.0"
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = ">= 3.0, < 4.0"
}
random = {
source = "hashicorp/random"
version = ">= 3.0"
}
}
}
provider "azurerm" {
features {
resource_group {
prevent_deletion_if_contains_resources = false
}
}
}
ملف Terraform الرئيسي
resource "azurerm_resource_group" "example" {
name = "${random_pet.prefix.id}-rg"
location = var.location
}
resource "azurerm_cosmosdb_account" "example" {
name = "${random_pet.prefix.id}-cosmosdb"
location = var.cosmosdb_account_location
resource_group_name = azurerm_resource_group.example.name
offer_type = "Standard"
kind = "GlobalDocumentDB"
enable_automatic_failover = false
geo_location {
location = var.location
failover_priority = 0
}
consistency_policy {
consistency_level = "BoundedStaleness"
max_interval_in_seconds = 300
max_staleness_prefix = 100000
}
depends_on = [
azurerm_resource_group.example
]
}
resource "azurerm_cosmosdb_sql_database" "main" {
name = "${random_pet.prefix.id}-sqldb"
resource_group_name = azurerm_resource_group.example.name
account_name = azurerm_cosmosdb_account.example.name
throughput = var.throughput
}
resource "azurerm_cosmosdb_sql_container" "example" {
name = "${random_pet.prefix.id}-sql-container"
resource_group_name = azurerm_resource_group.example.name
account_name = azurerm_cosmosdb_account.example.name
database_name = azurerm_cosmosdb_sql_database.main.name
partition_key_path = "/definition/id"
partition_key_version = 1
throughput = var.throughput
indexing_policy {
indexing_mode = "consistent"
included_path {
path = "/*"
}
included_path {
path = "/included/?"
}
excluded_path {
path = "/excluded/?"
}
}
unique_key {
paths = ["/definition/idlong", "/definition/idshort"]
}
}
resource "random_pet" "prefix" {
prefix = var.prefix
length = 1
}
يتم تعريف ثلاثة موارد Cosmos DB في ملف terraform الرئيسي.
Microsoft.DocumentDB / databaseAccounts: أنشئ حساب Azure Cosmos.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases: أنشئ قاعدة بيانات Azure Cosmos بمعدل نقل بيانات (RU/s).
Microsoft.DocumentDB / databaseAccounts / sqlDatabases / container: قم بإنشاء حاوية Azure Cosmos.
متغيرات ملف Terraform
variable "prefix" {
type = string
default = "cosmosdb-manualscale"
description = "Prefix of the resource name"
}
variable "location" {
type = string
default = "Canada Central"
description = "Resource group location"
}
variable "cosmosdb_account_location" {
type = string
default = "Canada Central"
description = "Cosmos db account location"
}
variable "throughput" {
type = number
default = 400
description = "Cosmos db database throughput"
validation {
condition = var.throughput >= 400 && var.throughput <= 1000000
error_message = "Cosmos db manual throughput should be equal to or greater than 400 and less than or equal to 1000000."
}
validation {
condition = var.throughput % 100 == 0
error_message = "Cosmos db throughput should be in increments of 100."
}
}
النشر عبر terraform
- احفظ ملفات terraform كملفات main.tf variables.tf providers.tf إلى الكمبيوتر المحلي.
- تسجيل الدخول إلى المحطة الطرفية الخاصة بك عبر Azure CLI أو PowerShell
- النشر عبر أوامر Terraform
- تيرافورم إنيت
النتيجة المتوقعة: يقوم Terraform بتهيئته بنجاح ويقوم بتنزيل مزود azurerm. - خطة terraform
النتيجة المتوقعة: يظهر مخرج الخطة 3 للإضافة، 0 للتغيير، 0 للتدمير. - تطبيق terraform
النتيجة المتوقعة: النتيجة النهائية تشمل Apply complete! الموارد: 3 أضيفت، 0 تغيرت، 0 تدمير.
- تيرافورم إنيت
التحقُّق من صحة عملية النشر
استخدم مدخل Microsoft Azure أو Azure CLI أو Azure PowerShell لإدراج الموارد الموزعة في مجموعة الموارد.
az resource list --resource-group "your resource group name"
النتيجة المتوقعة: يسرد الناتج موردا Microsoft.DocumentDB/databaseAccounts مع قاعدة بياناته وحاويتها.
تنظيف الموارد
إذا كنت تخطط لمواصلة العمل بالبدايات السريعة والبرامج التعليمية اللاحقة، فقد ترغب في ترك هذه الموارد في مكانها. عند عدم الحاجة، استخدم مدخل Azure أو Azure CLI أو Azure PowerShell لحذف مجموعة الموارد وموارده.
az group delete --name "your resource group name"
النتيجة المتوقعة: Azure CLI يؤكد حذف مجموعة الموارد ولم يعد يذكره في الاشتراك.
الخطوات التالية
في هذا التشغيل السريع، قمت بإنشاء حساب Azure Cosmos وقاعدة بيانات وحاوية عبر terraform والتحقق من صحة النشر. لمعرفة المزيد حول Azure Cosmos DB وTerraform، تابع إلى المقالات أدناه.
- اقرأ نظرة عامة على Azure Cosmos DB.
- تعرف على المزيد حول Terraform.
- تعرف على المزيد حول موفر Azure Terraform.
- إدارة Cosmos DB باستخدام Terraform
- هل تحاول القيام بتخطيط السعة للترحيل إلى Azure Cosmos DB؟ يمكنك استخدام معلومات حول نظام مجموعة قاعدة البيانات الموجودة لديك لـ تخطيط السعة.
- في حال كان كل ما تعرفه هو عدد vCores والخوادم في مجموعة قاعدة البيانات الحالية، فاقرأ عن تقدير وحدات الطلب باستخدام vCores أو vCPUs.
- إذا كنت تعرف معدلات الطلب النموذجية لحمل عمل قاعدة البيانات الحالية، فاقرأ حول تقدير وحدات الطلب باستخدام مخطط سعة Azure Cosmos DB.