إدارة Azure Cosmos DB لموارد NoSQL باستخدام PowerShell
ينطبق على: NoSQL
يصف الدليل التالي كيفية استخدام PowerShell للبرمجة النصية وإدارة Azure Cosmos DB لموارد NoSQL وأتمتتها، بما في ذلك حساب Azure Cosmos DB وقاعدة البيانات والحاوية ومعدل النقل. بالنسبة ل PowerShell cmdlets لواجهات برمجة التطبيقات الأخرى، راجع نماذج PowerShell ل Cassandra، ونماذج PowerShell لواجهة برمجة التطبيقات ل MongoDB، ونماذج PowerShell ل Gremlin، ونماذج PowerShell للجدول
إشعار
تستخدم العينات في هذه المقالة أوامر cmdlets الخاصة بإدارة Az.CosmosDB. يمكنك الاطلاع على مرجع Api Az.CosmosDB للحصول على أحدث التغييرات.
للإدارة عبر النظام الأساسي من Azure Cosmos DB، يمكنك استخدام أوامر cmdlets Az
وAz.CosmosDB
مع cross-platform PowerShell، بالإضافة إلى واجهة مستوى الاستدعاء من Azure، أو واجهة برمجة تطبيقات REST، أو مدخل Azure.
إشعار
نوصي باستخدام الوحدة النمطية Azure Az PowerShell للتفاعل مع Azure. للبدء، راجع تثبيت Azure PowerShell. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.
الشروع في العمل
اتبع الإرشادات الواردة في مقالة كيفية تثبيت وتكوين Azure PowerShell من أجل معرفة كيفية تثبيت Azure PowerShell على جهاز الكمبيوتر الخاص بك.
هام
لا يمكن إعادة تسمية موارد Azure Cosmos DB لأن هذا ينتهك كيفية عمل إدارة موارد Azure مع معرّف الموارد المنتظمة.
حسابات Azure Cosmos DB
توضح الأقسام التالية كيفية إدارة حساب Azure Cosmos DB، بما في ذلك:
- إنشاء حساب Azure Cosmos DB
- تحديث حساب Azure Cosmos DB
- سرد جميع حسابات Azure Cosmos DB في اشتراك
- الحصول على حساب Azure Cosmos DB
- حذف حساب Azure Cosmos DB
- تحديث العلامات لحساب Azure Cosmos DB
- تعديل أولوية تجاوز الفشل لحساب Azure Cosmos DB
- تشغيل تجاوز فشل يدوي لحساب Azure Cosmos DB
- قائمة تأمين الموارد على حساب Azure Cosmos DB
إنشاء حساب Azure Cosmos DB
ينشئ هذا الأمر حساب قاعدة بيانات Azure Cosmos DB مع مناطق متعددة، وتجاوز فشل مُدار بواسطة الخدمة ونهج تناسق مقيّد.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$apiKind = "Sql"
$consistencyLevel = "BoundedStaleness"
$maxStalenessInterval = 300
$maxStalenessPrefix = 100000
$locations = @()
$locations += New-AzCosmosDBLocationObject -LocationName "East US" -FailoverPriority 0 -IsZoneRedundant 0
$locations += New-AzCosmosDBLocationObject -LocationName "West US" -FailoverPriority 1 -IsZoneRedundant 0
New-AzCosmosDBAccount `
-ResourceGroupName $resourceGroupName `
-LocationObject $locations `
-Name $accountName `
-ApiKind $apiKind `
-EnableAutomaticFailover:$true `
-DefaultConsistencyLevel $consistencyLevel `
-MaxStalenessIntervalInSeconds $maxStalenessInterval `
-MaxStalenessPrefix $maxStalenessPrefix
$resourceGroupName
مجموعة موارد Azure لنشر حساب Azure Cosmos DB فيها. والتي يجب أن تكون مُنشأة بالفعل.$locations
هي المناطق المُنشأة من أجل حساب قاعدة البيانات، وحساب منطقة البيانات معFailoverPriority 0
والتي هي منطقة الكتابة.$accountName
اسم حساب Azure Cosmos DB. والذي يجب أن يكون فريداً، ومكتوباً بحروف صغيرة، وتشمل فقط الأبجدية الرقمية ورموز '-'، وبطول يتراوح بين 3 - 31 حرف.$apiKind
نوع حساب Azure Cosmos DB المراد إنشاؤه. لمزيد من المعلومات، راجع واجهات برمجة التطبيقات في Azure Cosmos DB.$consistencyPolicy
،$maxStalenessInterval
و، ومستوى$maxStalenessPrefix
التناسق الافتراضي والإعدادات لحساب Azure Cosmos DB. للحصول على مزيد من المعلومات، يمكنك الاطلاع على مستويات تناسق البيانات القابلة للضبط في خدمة Azure Cosmos DB.
يمكن تكوين حسابات Azure Cosmos DB باستخدام جدار حماية IP ونقاط نهاية خدمة الشبكة الظاهرية ونقاط النهاية الخاصة. للحصول على معلومات حول كيفية تكوين جدار حماية IP لـ Azure Cosmos DB، يمكنك الاطلاع تكوين جدار حماية IP. للحصول على معلومات حول كيفية تمكين نقاط نهاية الخدمة لـ Azure Cosmos DB، يمكنك الاطلاع على تكوين الوصول من الشبكات الظاهرية. للحصول على معلومات حول كيفية تمكين نقاط النهاية الخاصة بـ Azure Cosmos DB، يمكنك الاطلاع على تكوين الوصول من نقاط النهاية الخاصة.
سرد جميع حسابات Azure Cosmos DB في مجموعة موارد
يسرد هذا الأمر جميع حسابات Azure Cosmos DB في مجموعة الموارد.
$resourceGroupName = "myResourceGroup"
Get-AzCosmosDBAccount -ResourceGroupName $resourceGroupName
الحصول على خصائص حساب Azure Cosmos DB
يسمح لك هذا الأمر بالحصول على خصائص حساب Azure Cosmos DB موجود.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
Get-AzCosmosDBAccount -ResourceGroupName $resourceGroupName -Name $accountName
تحديث حساب Azure Cosmos DB
يسمح لك هذا الأمر بتحديث خصائص حساب قاعدة بيانات Azure Cosmos DB. تتضمن الخصائص التي يمكن تحديثها ما يلي:
- إضافة مناطق بيانات أو إزالتها
- تغيير نهج التناسق الافتراضي
- تغيير عامل تصفية نطاق IP
- تغيير تكوينات الشبكة الظاهرية
- تمكين عمليات الكتابة متعددة المناطق
إشعار
لا يمكنك إضافة مناطق أو إزالتها في وقت واحد (locations
) وتغيير خصائص أخرى لحساب Azure Cosmos DB. يجب إجراء تعديل المناطق كعمليات منفصلة عن أي تغيير آخر للحساب.
إشعار
يسمح لك هذا الأمر بإضافة المناطق وإزالتها ولكن لا يسمح لك بتعديل أولويات تجاوز الفشل أو تشغيل تجاوز الفشل اليدوي. يمكنك الاطلاع على تعديل أولوية تجاوز الفشل وتشغيل تجاوز الفشل اليدوي.
تلميح
عند إضافة منطقة جديدة، يجب نسخ جميع البيانات بالكامل وتثبيتها في المنطقة الجديدة قبل وضع علامة على المنطقة على أنها متوفرة. يعتمد مقدار الوقت الذي تستغرقه هذه العملية على مقدار البيانات المخزنة داخل الحساب. إذا كانت هناك عملية تحجيم معدل النقل غير المتزامن قيد التقدم، فستقف عملية زيادة معدلات النقل مؤقتاً وستُستأنف تلقائياً عند اكتمال عملية إضافة / إزالة المنطقة.
# Create account with two regions
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$apiKind = "Sql"
$consistencyLevel = "Session"
$enableAutomaticFailover = $true
$locations = @()
$locations += New-AzCosmosDBLocationObject -LocationName "East US" -FailoverPriority 0 -IsZoneRedundant 0
$locations += New-AzCosmosDBLocationObject -LocationName "West US" -FailoverPriority 1 -IsZoneRedundant 0
# Create the Azure Cosmos DB account
New-AzCosmosDBAccount `
-ResourceGroupName $resourceGroupName `
-LocationObject $locations `
-Name $accountName `
-ApiKind $apiKind `
-EnableAutomaticFailover:$enableAutomaticFailover `
-DefaultConsistencyLevel $consistencyLevel
# Add a region to the account
$locationObject2 = @()
$locationObject2 += New-AzCosmosDBLocationObject -LocationName "East US" -FailoverPriority 0 -IsZoneRedundant 0
$locationObject2 += New-AzCosmosDBLocationObject -LocationName "West US" -FailoverPriority 1 -IsZoneRedundant 0
$locationObject2 += New-AzCosmosDBLocationObject -LocationName "South Central US" -FailoverPriority 2 -IsZoneRedundant 0
Update-AzCosmosDBAccountRegion `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-LocationObject $locationObject2
Write-Host "Update-AzCosmosDBAccountRegion returns before the region update is complete."
Write-Host "Check account in Azure portal or using Get-AzCosmosDBAccount for region status."
Write-Host "When region was added, press any key to continue."
$HOST.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") | OUT-NULL
$HOST.UI.RawUI.Flushinputbuffer()
# Remove West US region from the account
$locationObject3 = @()
$locationObject3 += New-AzCosmosDBLocationObject -LocationName "East US" -FailoverPriority 0 -IsZoneRedundant 0
$locationObject3 += New-AzCosmosDBLocationObject -LocationName "South Central US" -FailoverPriority 1 -IsZoneRedundant 0
Update-AzCosmosDBAccountRegion `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-LocationObject $locationObject3
Write-Host "Update-AzCosmosDBAccountRegion returns before the region update is complete."
Write-Host "Check account in Azure portal or using Get-AzCosmosDBAccount for region status."
تمكين مناطق كتابة متعددة لحساب Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$enableAutomaticFailover = $false
$enableMultiMaster = $true
# First disable service-managed failover - cannot have both service-managed
# failover and multi-region writes on an account
Update-AzCosmosDBAccount `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-EnableAutomaticFailover:$enableAutomaticFailover
# Now enable multi-region writes
Update-AzCosmosDBAccount `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-EnableMultipleWriteLocations:$enableMultiMaster
حذف حساب Azure Cosmos DB
يحذف هذا الأمر حساب Azure Cosmos DB موجود.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
Remove-AzCosmosDBAccount `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-PassThru:$true
تحديث علامات حساب Azure Cosmos DB
يعين هذا الأمر علامات مورد Azure لحساب Azure Cosmos DB. يمكن تعيين العلامات عند إنشاء الحساب باستخدام New-AzCosmosDBAccount
وكذلك عند تحديث الحساب باستخدام Update-AzCosmosDBAccount
.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$tags = @{dept = "Finance"; environment = "Production";}
Update-AzCosmosDBAccount `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-Tag $tags
تمكين تجاوز الفشل المُدار بواسطة الخدمة
يعين الأمر التالي حساب Azure Cosmos DB لتنفيذ فشل مدار بواسطة الخدمة إلى منطقته الثانوية إذا أصبحت المنطقة الأساسية غير متوفرة.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$enableAutomaticFailover = $true
$enableMultiMaster = $false
# First disable multi-region writes - cannot have both automatic
# failover and multi-region writes on an account
Update-AzCosmosDBAccount `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-EnableMultipleWriteLocations:$enableMultiMaster
# Now enable service-managed failover
Update-AzCosmosDBAccount `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-EnableAutomaticFailover:$enableAutomaticFailover
تعديل أولوية تجاوز الفشل
بالنسبة للحسابات التي تم تكوينها باستخدام تجاوز الفشل المدار بواسطة الخدمة، يمكنك تغيير الترتيب الذي سيقوم به Azure Cosmos DB بترقية النسخ المتماثلة الثانوية إلى النسخ المتماثلة الأساسية في حالة عدم توفر الأساسي.
على سبيل المثال أدناه، يمكنك الافتراض أن أولوية تجاوز الفشل الحالية هي West US = 0
، وEast US = 1
، وSouth Central US = 2
. سيقوم الأمر بتغيير هذا إلى West US = 0
، وSouth Central US = 1
، وEast US = 2
.
تنبيه
سيؤدي تغيير الموقع إلى failoverPriority=0
تشغيل تجاوز فشل يدوي لحساب Azure Cosmos DB. لن تؤدي أي تغييرات أولوية أخرى إلى تجاوز الفشل.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$locations = @("West US", "South Central US", "East US") # Regions ordered by UPDATED failover priority
Update-AzCosmosDBAccountFailoverPriority `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-FailoverPolicy $locations
تشغيل تجاوز الفشل اليدوي
بالنسبة للحسابات التي كُوّنت باستخدام "تجاوز الفشل اليدوي"، يمكنك تجاوز الفشل وترقية أي نسخة متماثلة ثانوية إلى النسخة الأساسية عن طريق التعديل إلى failoverPriority=0
. يمكن استخدام هذه العملية لبدء تدريب على التعافي من الكوارث لاختبار تخطيط التعافي من الكوارث.
على سبيل المثال أدناه، يمكنك الافتراض أن الحساب لديه أولوية تجاوز الفشل حالية من West US = 0
وEast US = 1
وعمليات عكس المناطق.
تنبيه
سيؤدي التغيير locationName
إلى failoverPriority=0
تشغيل تجاوز فشل يدوي لحساب Azure Cosmos DB. لن يؤدي أي تغيير آخر في الأولوية إلى حدوث تجاوز للفشل.
إشعار
إذا أجريت عملية تجاوز الفشل اليدوي أثناء عملية تحجيم سرعة نقل غير متزامنة قيد التقدم، فستقف عملية زيادة معدلات النقل مؤقتاً. سيتم استئنافها تلقائياً عند اكتمال عملية تجاوز الفشل.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$locations = @("East US", "West US") # Regions ordered by UPDATED failover priority
Update-AzCosmosDBAccountFailoverPriority `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-FailoverPolicy $locations
قائمة تأمين الموارد على حساب Azure Cosmos DB
يمكن وضع تأمين الموارد على موارد Azure Cosmos DB بما في ذلك قواعد البيانات والمجموعات. يوضح المثال أدناه كيفية سرد جميع تأمينات موارد Azure على حساب Azure Cosmos DB.
$resourceGroupName = "myResourceGroup"
$resourceTypeAccount = "Microsoft.DocumentDB/databaseAccounts"
$accountName = "mycosmosaccount"
Get-AzResourceLock `
-ResourceGroupName $resourceGroupName `
-ResourceType $resourceTypeAccount `
-ResourceName $accountName
قاعدة بيانات Azure Cosmos DB
توضح المقاطع التالية كيفية إدارة قاعدة بيانات Azure Cosmos DB، بما في ذلك:
- إنشاء قاعدة بيانات Azure Cosmos DB
- إنشاء قاعدة بيانات Azure Cosmos DB مع معدل النقل المشترك
- الحصول على معدل النقل لقاعدة بيانات Azure Cosmos DB
- ترحيل معدل نقل قاعدة البيانات إلى مقياس تلقائي
- سرد جميع قواعد بيانات Azure Cosmos DB في الحساب
- الحصول على قاعدة بيانات واحدة Azure Cosmos DB
- حذف قاعدة بيانات Azure Cosmos DB
- إنشاء تأمين مورد على قاعدة بيانات Azure Cosmos DB لمنع الحذف
- إزالة تأمين مورد على قاعدة بيانات Azure Cosmos DB
إنشاء قاعدة بيانات Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
New-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName
إنشاء قاعدة بيانات Azure Cosmos DB مع معدل النقل المشترك
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$databaseRUs = 400
New-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName `
-Throughput $databaseRUs
الحصول على معدل النقل لقاعدة بيانات Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Get-AzCosmosDBSqlDatabaseThroughput `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName
ترحيل معدل نقل قاعدة البيانات إلى مقياس تلقائي
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Invoke-AzCosmosDBSqlDatabaseThroughputMigration `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName `
-ThroughputType Autoscale
الحصول على جميع قواعد بيانات Azure Cosmos DB في الحساب
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
Get-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName
الحصول على قاعدة بيانات واحدة Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Get-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName
حذف قاعدة بيانات Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Remove-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName
إنشاء تأمين مورد على قاعدة بيانات Azure Cosmos DB لمنع الحذف
$resourceGroupName = "myResourceGroup"
$resourceType = "Microsoft.DocumentDB/databaseAccounts/sqlDatabases"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$resourceName = "$accountName/$databaseName"
$lockName = "myResourceLock"
$lockLevel = "CanNotDelete"
New-AzResourceLock `
-ResourceGroupName $resourceGroupName `
-ResourceType $resourceType `
-ResourceName $resourceName `
-LockName $lockName `
-LockLevel $lockLevel
إزالة تأمين مورد على قاعدة بيانات Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$resourceType = "Microsoft.DocumentDB/databaseAccounts/sqlDatabases"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$resourceName = "$accountName/$databaseName"
$lockName = "myResourceLock"
Remove-AzResourceLock `
-ResourceGroupName $resourceGroupName `
-ResourceType $resourceType `
-ResourceName $resourceName `
-LockName $lockName
حاوية Azure Cosmos DB
توضح المقاطع التالية كيفية إدارة حاوية Azure Cosmos DB، بما في ذلك:
- إنشاء حاوية Azure Cosmos DB
- إنشاء حاوية Azure Cosmos DB مع مقياس تلقائي
- إنشاء حاوية Azure Cosmos DB مع مفتاح قسم كبير
- الحصول على معدل نقل حاوية Azure Cosmos DB
- ترحيل معدل نقل الحاوية إلى المقياس التلقائي
- إنشاء حاوية Azure Cosmos DB مع الفهرسة المخصصة
- إنشاء حاوية Azure Cosmos DB مع إيقاف الفهرسة
- إنشاء حاوية Azure Cosmos DB مع مفتاح فريد وTTL
- إنشاء حاوية Azure Cosmos DB مع حل التعارض
- سرد جميع حاويات Azure Cosmos DB في قاعدة البيانات
- الحصول على حاوية واحدة Azure Cosmos DB في قاعدة بيانات
- حذف حاوية Azure Cosmos DB
- إنشاء تأمين مورد على قاعدة بيانات Azure Cosmos DB لمنع الحذف
- إزالة تأمين مورد على حاوية Azure Cosmos DB
إنشاء حاوية Azure Cosmos DB
# Create an Azure Cosmos DB container with default indexes and throughput at 400 RU
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
$partitionKeyPath = "/myPartitionKey"
$throughput = 400 #minimum = 400
New-AzCosmosDBSqlContainer `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName `
-PartitionKeyKind Hash `
-PartitionKeyPath $partitionKeyPath `
-Throughput $throughput
إنشاء حاوية Azure Cosmos DB مع مقياس تلقائي
# Create an Azure Cosmos DB container with default indexes and autoscale throughput at 4000 RU
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
$partitionKeyPath = "/myPartitionKey"
$autoscaleMaxThroughput = 4000 #minimum = 4000
New-AzCosmosDBSqlContainer `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName `
-PartitionKeyKind Hash `
-PartitionKeyPath $partitionKeyPath `
-AutoscaleMaxThroughput $autoscaleMaxThroughput
إنشاء حاوية Azure Cosmos DB مع مفتاح قسم بحجم كبير
# Create an Azure Cosmos DB container with a large partition key value (version = 2)
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
$partitionKeyPath = "/myPartitionKey"
New-AzCosmosDBSqlContainer `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName `
-PartitionKeyKind Hash `
-PartitionKeyPath $partitionKeyPath `
-PartitionKeyVersion 2
الحصول على معدل نقل حاوية Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
Get-AzCosmosDBSqlContainerThroughput `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName
ترحيل معدل نقل الحاوية إلى المقياس التلقائي
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
Invoke-AzCosmosDBSqlContainerThroughputMigration `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName `
-ThroughputType Autoscale
إنشاء حاوية Azure Cosmos DB مع نهج الفهرس المخصص
# Create a container with a custom indexing policy
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
$partitionKeyPath = "/myPartitionKey"
$indexPathIncluded = "/*"
$indexPathExcluded = "/myExcludedPath/*"
$includedPathIndex = New-AzCosmosDBSqlIncludedPathIndex -DataType String -Kind Range
$includedPath = New-AzCosmosDBSqlIncludedPath -Path $indexPathIncluded -Index $includedPathIndex
$indexingPolicy = New-AzCosmosDBSqlIndexingPolicy `
-IncludedPath $includedPath `
-ExcludedPath $indexPathExcluded `
-IndexingMode Consistent `
-Automatic $true
New-AzCosmosDBSqlContainer `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName `
-PartitionKeyKind Hash `
-PartitionKeyPath $partitionKeyPath `
-IndexingPolicy $indexingPolicy
إنشاء حاوية Azure Cosmos DB مع إيقاف الفهرسة
# Create an Azure Cosmos DB container with no indexing
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
$partitionKeyPath = "/myPartitionKey"
$indexingPolicy = New-AzCosmosDBSqlIndexingPolicy `
-IndexingMode None
New-AzCosmosDBSqlContainer `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName `
-PartitionKeyKind Hash `
-PartitionKeyPath $partitionKeyPath `
-IndexingPolicy $indexingPolicy
إنشاء حاوية Azure Cosmos DB مع نهج مفتاح فريد وTTL
# Create a container with a unique key policy and TTL of one day
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
$partitionKeyPath = "/myPartitionKey"
$uniqueKeyPath = "/myUniqueKeyPath"
$ttlInSeconds = 86400 # Set this to -1 (or don't use it at all) to never expire
$uniqueKey = New-AzCosmosDBSqlUniqueKey `
-Path $uniqueKeyPath
$uniqueKeyPolicy = New-AzCosmosDBSqlUniqueKeyPolicy `
-UniqueKey $uniqueKey
New-AzCosmosDBSqlContainer `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName `
-PartitionKeyKind Hash `
-PartitionKeyPath $partitionKeyPath `
-UniqueKeyPolicy $uniqueKeyPolicy `
-TtlInSeconds $ttlInSeconds
إنشاء حاوية Azure Cosmos DB مع حل التعارض
أدخل -Type "Custom" -Path ""
، لكتابة جميع التعارضات إلى ملف التعارضات والتعامل معها بشكل منفصل.
# Create container with last-writer-wins conflict resolution policy
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
$partitionKeyPath = "/myPartitionKey"
$conflictResolutionPath = "/myResolutionPath"
$conflictResolutionPolicy = New-AzCosmosDBSqlConflictResolutionPolicy `
-Type LastWriterWins `
-Path $conflictResolutionPath
New-AzCosmosDBSqlContainer `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName `
-PartitionKeyKind Hash `
-PartitionKeyPath $partitionKeyPath `
-ConflictResolutionPolicy $conflictResolutionPolicy
لإنشاء نهج حل التعارض لاستخدام إجراء مخزّن، يمكنك استدعاء New-AzCosmosDBSqlConflictResolutionPolicy
وإدخال المعلماّت -Type
و-ConflictResolutionProcedure
.
# Create container with custom conflict resolution policy using a stored procedure
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
$partitionKeyPath = "/myPartitionKey"
$conflictResolutionSprocName = "mysproc"
$conflictResolutionSproc = "/dbs/$databaseName/colls/$containerName/sprocs/$conflictResolutionSprocName"
$conflictResolutionPolicy = New-AzCosmosDBSqlConflictResolutionPolicy `
-Type Custom `
-ConflictResolutionProcedure $conflictResolutionSproc
New-AzCosmosDBSqlContainer `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName `
-PartitionKeyKind Hash `
-PartitionKeyPath $partitionKeyPath `
-ConflictResolutionPolicy $conflictResolutionPolicy
سرد جميع حاويات AZURE Cosmos DB في قاعدة البيانات
# List all Azure Cosmos DB containers in a database
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Get-AzCosmosDBSqlContainer `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName
الحصول على حاوية واحدة Azure Cosmos DB في قاعدة بيانات
# Get a single Azure Cosmos DB container in a database
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
Get-AzCosmosDBSqlContainer `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName
حذف حاوية Azure Cosmos DB
# Delete an Azure Cosmos DB container
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
Remove-AzCosmosDBSqlContainer `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName
إنشاء تأمين مورد على قاعدة بيانات Azure Cosmos DB لمنع الحذف
$resourceGroupName = "myResourceGroup"
$resourceType = "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
$resourceName = "$accountName/$databaseName/$containerName"
$lockName = "myResourceLock"
$lockLevel = "CanNotDelete"
New-AzResourceLock `
-ResourceGroupName $resourceGroupName `
-ResourceType $resourceType `
-ResourceName $resourceName `
-LockName $lockName `
-LockLevel $lockLevel
إزالة تأمين مورد على حاوية Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$resourceType = "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
$resourceName = "$accountName/$databaseName/$containerName"
$lockName = "myResourceLock"
Remove-AzResourceLock `
-ResourceGroupName $resourceGroupName `
-ResourceType $resourceType `
-ResourceName $resourceName `
-LockName $lockName