Bagikan melalui


Mengelola Azure Cosmos DB untuk sumber daya NoSQL menggunakan PowerShell

BERLAKU UNTUK: NoSQL

Panduan berikut menjelaskan cara menggunakan PowerShell untuk membuat skrip dan mengotomatiskan manajemen sumber daya Azure Cosmos DB untuk NoSQL, termasuk akun, database, kontainer, dan throughput Azure Cosmos DB. Untuk cmdlet PowerShell untuk API lain, lihat Sampel PowerShell untuk Cassandra, Sampel PowerShell untuk API untuk MongoDB, Sampel PowerShell untuk Gremlin, Sampel PowerShell untuk Tabel

Catatan

Sampel dalam artikel ini menggunakan cmdlet manajemen Az.CosmosDB. Lihat halaman referensi API Az.CosmosDB untuk perubahan terbaru.

Untuk manajemen lintas platform Microsoft Azure Cosmos DB, Anda dapat menggunakan cmdlet Az dan Az.CosmosDB dengan PowerShell lintas platform, serta Azure CLI, REST API, atau portal Microsoft Azure.

Catatan

Sebaiknya Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Untuk memulai, lihat Menginstal Azure PowerShell. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.

Memulai

Ikuti instruksi di Cara menginstal dan mengonfigurasi Azure PowerShell untuk menginstal dan masuk ke akun Azure Anda di PowerShell.

Penting

Sumber daya Azure Cosmos DB tidak dapat diganti namanya karena ini melanggar cara kerja Azure Resource Manager dengan URI sumber daya.

Akun Azure Cosmos DB

Bagian berikut menunjukkan cara mengelola akun Azure Cosmos DB, termasuk:

Membuat akun Azure Cosmos DB

Perintah ini membuat akun database Microsoft Azure Cosmos DB dengan multi wilayah, failover yang dikelola layanan, dan kebijakan konsistensi kedaluwarsa terikat.

$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 Grup sumber daya Azure untuk menyebarkan akun Azure Cosmos DB. Ini harus sudah ada.
  • $locations Wilayah untuk akun database, wilayah dengan FailoverPriority 0 adalah wilayah tulis.
  • $accountName Nama untuk akun Azure Cosmos DB. Harus unik, huruf kecil, hanya menyertakan karakter alfanumerik dan '-', dan panjangnya antara 3 sampai 31 karakter.
  • $apiKind Jenis akun Azure Cosmos DB yang akan dibuat. Untuk informasi selengkapnya, lihat API di Azure Cosmos DB.
  • $consistencyPolicy, , $maxStalenessIntervaldan $maxStalenessPrefix Tingkat konsistensi default dan pengaturan akun Azure Cosmos DB. Untuk informasi selengkapnya, lihat Tingkat Konsistensi di Microsoft Azure Cosmos DB.

Akun Azure Cosmos DB dapat dikonfigurasi dengan IP Firewall, titik akhir layanan Virtual Network, dan titik akhir privat. Untuk informasi tentang cara mengonfigurasi IP Firewall untuk Microsoft Azure Cosmos DB, lihat Konfigurasikan IP Firewall. Untuk informasi tentang cara mengaktifkan titik akhir layanan untuk Microsoft Azure Cosmos DB, lihat Konfigurasikan akses dari virtual Network. Untuk informasi tentang cara mengaktifkan titik akhir privat untuk Microsoft Azure Cosmos DB, lihat Konfigurasikan akses dari titik akhir privat.

Mencantumkan semua akun Azure Cosmos DB dalam Grup Sumber Daya

Perintah ini mencantumkan semua akun Azure Cosmos DB dalam Grup Sumber Daya.

$resourceGroupName = "myResourceGroup"

Get-AzCosmosDBAccount -ResourceGroupName $resourceGroupName

Mendapatkan properti akun Azure Cosmos DB

Perintah ini memungkinkan Anda untuk mendapatkan properti akun Azure Cosmos DB yang ada.

$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"

Get-AzCosmosDBAccount -ResourceGroupName $resourceGroupName -Name $accountName

Memperbarui akun Azure Cosmos DB

Perintah ini memungkinkan Anda memperbarui properti akun database Microsoft Azure Cosmos DB Anda. Properti yang bisa diperbarui meliputi yang berikut ini:

  • Menambahkan atau menghapus wilayah
  • Mengubah kebijakan konsistensi default
  • Mengubah Filter Rentang IP
  • Mengubah konfigurasi Virtual Network
  • Mengaktifkan penulisan multi-wilayah

Catatan

Anda tidak dapat menambahkan atau menghapus wilayahlocations () secara bersamaan dan mengubah properti lain untuk akun Azure Cosmos DB. Memodifikasi wilayah harus dilakukan sebagai operasi terpisah dari perubahan lain pada akun.

Catatan

Perintah ini memungkinkan Anda untuk menambah dan menghapus wilayah tetapi tidak memungkinkan Anda untuk memodifikasi prioritas failover atau memicu failover manual. Lihat Ubah prioritas failover dan Pemicu failover manual.

Tip

Saat wilayah baru ditambahkan, semua data harus sepenuhnya direplikasi dan diterapkan ke wilayah baru sebelum wilayah ditandai sebagai tersedia. Jumlah waktu yang diperlukan operasi ini akan tergantung pada berapa banyak data yang disimpan dalam akun tersebut. Jika operasi penskalaan throughput asinkron sedang berlangsung, operasi peningkatan skala throughput akan dijeda dan akan dilanjutkan secara otomatis saat operasi penambahan/penghapusan wilayah selesai.

# 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."

Mengaktifkan beberapa wilayah tulis untuk akun 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

Menghapus akun Azure Cosmos DB

Perintah ini menghapus akun Azure Cosmos DB yang sudah ada.

$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"

Remove-AzCosmosDBAccount `
    -ResourceGroupName $resourceGroupName `
    -Name $accountName `
    -PassThru:$true

Memperbarui Tag akun Azure Cosmos DB

Perintah ini mengatur tag sumber daya Azure untuk akun Azure Cosmos DB. Tag dapat diatur baik pada pembuatan akun menggunakan New-AzCosmosDBAccount maupun pada pembaruan akun menggunakan Update-AzCosmosDBAccount.

$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$tags = @{dept = "Finance"; environment = "Production";}

Update-AzCosmosDBAccount `
    -ResourceGroupName $resourceGroupName `
    -Name $accountName `
    -Tag $tags

Cantumkan Kunci Akun

Saat Anda membuat akun Azure Cosmos DB, layanan menghasilkan dua kunci akses utama yang dapat digunakan untuk autentikasi saat akun Azure Cosmos DB diakses. Kunci baca-saja untuk mengautentikasi operasi baca-saja juga dihasilkan. Dengan menyediakan dua kunci akses, Azure Cosmos DB memungkinkan Anda untuk meregenerasi dan memutar satu kunci sekaligus tanpa gangguan pada akun Azure Cosmos DB Anda. Akun Azure Cosmos DB memiliki dua kunci baca-tulis (primer dan sekunder) dan dua kunci baca-saja (primer dan sekunder).

$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"

Get-AzCosmosDBAccountKey `
    -ResourceGroupName $resourceGroupName `
    -Name $accountName `
    -Type "Keys"

Mencantumkan String Koneksi

Perintah berikut mengambil string koneksi untuk menyambungkan aplikasi ke akun Azure Cosmos DB.

$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"

Get-AzCosmosDBAccountKey `
    -ResourceGroupName $resourceGroupName `
    -Name $accountName `
    -Type "ConnectionStrings"

Meregenerasi Kunci Akun

Kunci akses ke akun Azure Cosmos DB harus diregenerasi secara berkala untuk membantu menjaga koneksi tetap aman. Kunci akses primer dan sekunder ditetapkan ke akun. Ini memungkinkan klien untuk mempertahankan akses selagi satu kunci diregenerasi pada satu waktu. Ada empat jenis kunci untuk akun Azure Cosmos DB (Primer, Sekunder, PrimaryReadonly, dan SecondaryReadonly)

$resourceGroupName = "myResourceGroup" # Resource Group must already exist
$accountName = "mycosmosaccount" # Must be all lower case
$keyKind = "primary" # Other key kinds: secondary, primaryReadonly, secondaryReadonly

New-AzCosmosDBAccountKey `
    -ResourceGroupName $resourceGroupName `
    -Name $accountName `
    -KeyKind $keyKind

Mengaktifkan failover yang Dikelola Layanan

Perintah berikut menetapkan akun Azure Cosmos DB untuk melakukan failover yang dikelola layanan ke wilayah sekundernya jika wilayah utama menjadi tidak tersedia.

$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

Mengubah Prioritas Failover

Untuk akun yang dikonfigurasi dengan Service-Managed Failover, Anda dapat mengubah urutan di mana Azure Cosmos DB akan mempromosikan replika sekunder ke primer jika primer menjadi tidak tersedia.

Untuk contoh di bawah ini, asumsikan prioritas failover saat ini adalah West US = 0, East US = 1, South Central US = 2. Perintah akan mengubah ini menjadi West US = 0, South Central US = 1, East US = 2.

Perhatian

Mengubah lokasi untuk failoverPriority=0 akan memicu failover manual untuk akun Azure Cosmos DB. Perubahan prioritas lainnya tidak akan memicu failover.

$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

Picu Failover Manual

Untuk akun yang dikonfigurasi dengan Failover Manual, Anda dapat failover dan mempromosikan replika sekunder ke primer dengan mengubahnya menjadi failoverPriority=0. Operasi ini dapat digunakan untuk memulai latihan pemulihan bencana demi menguji perencanaan pemulihan bencana.

Untuk contoh di bawah ini, asumsikan akun memiliki prioritas failover saat ini West US = 0 dan East US = 1 dan balikkan wilayahnya.

Perhatian

Mengubah locationName untuk failoverPriority=0 akan memicu failover manual untuk akun Azure Cosmos DB. Perubahan prioritas lainnya tidak akan memicu kegagalan.

Catatan

Jika Anda melakukan operasi failover manual saat operasi penskalaan throughput asinkron sedang berlangsung, operasi peningkatan throughput akan dihentikan. Ini akan dilanjutkan secara otomatis ketika operasi failover selesai.

$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$locations = @("East US", "West US") # Regions ordered by UPDATED failover priority

Update-AzCosmosDBAccountFailoverPriority `
    -ResourceGroupName $resourceGroupName `
    -Name $accountName `
    -FailoverPolicy $locations

Mencantumkan penguncian sumber daya pada akun Microsoft Azure Cosmos DB

Penguncian sumber daya dapat ditempatkan pada sumber daya Microsoft Azure Cosmos DB termasuk database dan koleksi. Contoh di bawah ini memperlihatkan cara mencantumkan semua penguncian sumber daya Azure pada akun Microsoft Azure Cosmos DB.

$resourceGroupName = "myResourceGroup"
$resourceTypeAccount = "Microsoft.DocumentDB/databaseAccounts"
$accountName = "mycosmosaccount"

Get-AzResourceLock `
    -ResourceGroupName $resourceGroupName `
    -ResourceType $resourceTypeAccount `
    -ResourceName $accountName

Database Microsoft Azure Cosmos DB

Bagian berikut menunjukkan cara mengelola akun Azure Cosmos, termasuk:

Membuat database Microsoft Azure Cosmos DB

$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"

New-AzCosmosDBSqlDatabase `
    -ResourceGroupName $resourceGroupName `
    -AccountName $accountName `
    -Name $databaseName

Membuat database Microsoft Azure Cosmos DB dengan throughput bersama

$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$databaseRUs = 400

New-AzCosmosDBSqlDatabase `
    -ResourceGroupName $resourceGroupName `
    -AccountName $accountName `
    -Name $databaseName `
    -Throughput $databaseRUs

Dapatkan throughput database Microsoft Azure Cosmos DB

$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"

Get-AzCosmosDBSqlDatabaseThroughput `
    -ResourceGroupName $resourceGroupName `
    -AccountName $accountName `
    -Name $databaseName

Migrasikan throughput database ke skala otomatis

$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"

Invoke-AzCosmosDBSqlDatabaseThroughputMigration `
    -ResourceGroupName $resourceGroupName `
    -AccountName $accountName `
    -Name $databaseName `
    -ThroughputType Autoscale

Dapatkan semua database Microsoft Azure Cosmos DB dalam akun

$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"

Get-AzCosmosDBSqlDatabase `
    -ResourceGroupName $resourceGroupName `
    -AccountName $accountName

Dapatkan satu database Microsoft Azure Cosmos DB

$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"

Get-AzCosmosDBSqlDatabase `
    -ResourceGroupName $resourceGroupName `
    -AccountName $accountName `
    -Name $databaseName

Hapus database Microsoft Azure Cosmos DB

$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"

Remove-AzCosmosDBSqlDatabase `
    -ResourceGroupName $resourceGroupName `
    -AccountName $accountName `
    -Name $databaseName

Buat penguncian sumber daya pada database Microsoft Azure Cosmos DB untuk mencegah penghapusan

$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

Hapus penguncian sumber daya pada database Microsoft 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

Kontainer Microsoft Azure Cosmos DB

Bagian berikut menunjukkan cara mengelola akun Microsoft Azure Cosmos DB, termasuk:

Buat kontainer Microsoft 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

Buat kontainer Microsoft Azure Cosmos DB dengan skala otomatis

# 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

Buat kontainer Microsoft Azure Cosmos DB dengan ukuran kunci partisi besar

# 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

Dapatkan throughput kontainer Microsoft Azure Cosmos DB

$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"

Get-AzCosmosDBSqlContainerThroughput `
    -ResourceGroupName $resourceGroupName `
    -AccountName $accountName `
    -DatabaseName $databaseName `
    -Name $containerName

Migrasikan throughput kontainer ke skala otomatis

$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"

Invoke-AzCosmosDBSqlContainerThroughputMigration `
    -ResourceGroupName $resourceGroupName `
    -AccountName $accountName `
    -DatabaseName $databaseName `
    -Name $containerName `
    -ThroughputType Autoscale

Buat kontainer Microsoft Azure Cosmos DB dengan kebijakan pengindeksan kustom

# 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

Buat kontainer Microsoft Azure Cosmos DB tanpa pengindeksan

# 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

Buat kontainer Microsoft Azure Cosmos DB dengan kebijakan kunci unik dan 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

Buat kontainer Microsoft Azure Cosmos DB dengan resolusi konflik

Untuk menulis semua konflik ke ConflictsFeed dan menangani secara terpisah, izinkan -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

Untuk membuat kebijakan penyelesaian konflik untuk menggunakan prosedur tersimpan, panggil New-AzCosmosDBSqlConflictResolutionPolicy dan izinkan parameter -Type dan -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

Cantumkan semua kontainer Microsoft Azure Cosmos DB dalam database

# List all Azure Cosmos DB containers in a database
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"

Get-AzCosmosDBSqlContainer `
    -ResourceGroupName $resourceGroupName `
    -AccountName $accountName `
    -DatabaseName $databaseName

Dapatkan satu kontainer Microsoft Azure Cosmos DB dalam database

# 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

Hapus kontainer Microsoft 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

Buat penguncian sumber daya pada kontainer Microsoft Azure Cosmos DB untuk mencegah penghapusan

$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

Hapus penguncian sumber daya pada kontainer Microsoft 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

Langkah berikutnya