PowerShell kullanarak Azure Cosmos DB Core (SQL) API kaynaklarını yönetme

UYGULANDıĞı YER: SQL API

Aşağıdaki kılavuzda, Cosmos hesabı, veritabanı, kapsayıcı ve aktarım hızı dahil olmak üzere Azure Cosmos DB Core (SQL) API kaynaklarının yönetimini betikleştirmek ve otomatikleştirmek için PowerShell'in nasıl kullanıldığı açıkmektedir. Diğer API'ler için PowerShell cmdlet'leri için bkz. Cassandraiçin PowerShell Örnekleri, MongoDB APIiçin PowerShell Örnekleri, Gremlin için PowerShellÖrnekleri, Tablo için PowerShell Örnekleri

Not

Bu makaledeki örneklerde Az.CosmosDB yönetim cmdlet'leri lanmıştır. En son değişiklikler için Az.CosmosDB API başvuru sayfasına bakın.

Azure Cosmos DB'nin platformlar arası yönetimi için ve Az Az.CosmosDB cmdlet'lerini platformlar arası PowerShell, Azure CLI, REST APIveya Azure portal.

Not

Bu makale Azure Az PowerShell modülünü kullanacak şekilde güncelleştirilmiştir. Az PowerShell modülü, Azure ile etkileşim kurmak için önerilen PowerShell modülüdür. Az PowerShell modülünü kullanmaya başlamak için Azure PowerShell’i yükleyin. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.

Başlarken

PowerShell'de Azure hesabınıza yüklemek ve Azure PowerShell için Yapılandırma ve Yükleme yönergelerini izleyin.

Önemli

Azure Cosmos DB kaynakları, kaynak URL'leriyle çalışma Azure Resource Manager ihlal ettiği için yeniden adlandırılamaz.

Azure Cosmos hesapları

Aşağıdaki bölümlerde, Aşağıdakiler dahil olmak üzere Azure Cosmos hesabı nasıl yönetebilirsiniz?

Azure Cosmos oluşturma

Bu komut birden çok bölge, otomatik yük Cosmos sınırlı eskilik tutarlılık ilkesi ile bir Azure Cosmos DB veritabanı hesabı oluşturur.

$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
  • $resourceGroupNameAzure kaynak grubu, bu hesabın dağıt Cosmos. Zaten mevcut olması gerekir.
  • $locations Veritabanı hesabının bölgeleri, ile bölgesi FailoverPriority 0 yazma bölgesidir.
  • $accountNameAzure Cosmos hesabı. Benzersiz, küçük harfli olmalı, yalnızca alfasayısal ve '-' karakterleri içermeli ve 3 ile 31 karakter uzunluğunda olmalıdır.
  • $apiKindOluşturulan Cosmos hesabın türü. Daha fazla bilgi için bkz. Cosmos DB'de API'ler.
  • $consistencyPolicy, ve Azure Cosmos hesabının varsayılan $maxStalenessInterval $maxStalenessPrefix tutarlılık düzeyi ve ayarları. Daha fazla bilgi için bkz. Azure Cosmos DB'de Tutarlılık Düzeyleri.

Azure Cosmos hesapları IP Güvenlik Duvarı, Sanal Ağ hizmet uç noktaları ve özel uç noktalarla yalıtabilirsiniz. Azure Cosmos DB için IP Güvenlik Duvarı'nı yapılandırma hakkında bilgi için bkz. IP Güvenlik Duvarını Yapılandırma. Azure Cosmos DB için hizmet uç noktalarını etkinleştirme hakkında bilgi için bkz. Sanal Ağlardan erişimi yapılandırma. Azure Cosmos DB için özel uç noktaları etkinleştirme hakkında bilgi için bkz. Özel uç noktalardan erişimi yapılandırma.

Bir Kaynak Cosmos tüm Azure hesabı hesaplarını listele

Bu komut, bir Kaynak Cosmos tüm Azure depolama hesaplarını listeler.

$resourceGroupName = "myResourceGroup"

Get-AzCosmosDBAccount -ResourceGroupName $resourceGroupName

Azure Cosmos hesabının özelliklerini edinin

Bu komut, mevcut bir Azure Cosmos hesabın özelliklerini alasınız.

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

Get-AzCosmosDBAccount -ResourceGroupName $resourceGroupName -Name $accountName

Azure Cosmos hesabını güncelleştirme

Bu komut, Azure veritabanı veritabanı Cosmos özelliklerini güncelleştirmenizi sağlar. Güncelleştirilebilir özellikler şunlardır:

  • Bölgeleri ekleme veya kaldırma
  • Varsayılan tutarlılık ilkesi değiştirme
  • IP Aralığı Filtresini Değiştirme
  • Sanal Ağ yapılandırmalarını değiştirme
  • Çok bölgeli yazmaları etkinleştirme

Not

Azure Cosmos hesabı için bölgeleri ( ) eşzamanlı olarak ekamaz veya kaldıramaz ve locations diğer Cosmos değiştiremezsiniz. Bölgelerin değiştirilmesi, hesapta yapılan diğer herhangi bir değişiklikten ayrı bir işlem olarak gerçekleştir yapılmalıdır.

Not

Bu komut bölgeleri eklemenize ve kaldırmanıza olanak sağlar, ancak yük devretme önceliklerini değiştirmenize veya el ile yük devretme tetiklemenize izin vermez. Bkz. Yük devretme önceliğini değiştirme ve El ile yük devretmeyi tetikleme.

İpucu

Yeni bölge eklendiğinde, bölge kullanılabilir olarak işaretlenmeden önce tüm verilerin tamamen çoğaltılması ve yeni bölgeye işlenmesi gerekir. Bu işlem için gereken süre, hesapta ne kadar veri depolandığına bağlıdır.

# 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 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 depolama hesabı için birden çok yazma Cosmos etkinleştirme

$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$enableAutomaticFailover = $false
$enableMultiMaster = $true

# First disable automatic failover - cannot have both automatic
# 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 silme

Bu komut, mevcut bir Azure Cosmos siler.

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

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

Azure Cosmos hesabının etiketlerini güncelleştirme

Bu komut, azure hesabı için Azure kaynak etiketlerini Cosmos ayarlar. Etiketlerin hem kullanılarak hesap oluşturma sırasında hem New-AzCosmosDBAccount de kullanılarak hesap güncelleştirmesinde ayarlanabilirsiniz. Update-AzCosmosDBAccount

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

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

Hesap Anahtarlarını Listele

Bir Azure Cosmos hesabı sanız, hizmet Azure Cosmos hesabına erişilirken kimlik doğrulaması için kullanılmaktadır. Salt okunur işlemlerin kimliklerini doğrulamaya yönelik salt okunur anahtarlar da oluşturulur. Azure Cosmos DB, iki erişim anahtarı sağlayarak Azure Cosmos hesabınız kesintiye neden olmadan tek bir anahtarı tek tek yeniden oluşturmanızı ve döndürmenizi sağlar. Cosmos Veritabanı hesaplarda iki okuma yazma anahtarı (birincil ve ikincil) ve iki salt okunur anahtar (birincil ve ikincil) vardır.

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

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

Bağlantı Dizelerini Listele

Aşağıdaki komut, uygulamaları Cosmos DB hesabına bağlamak için bağlantı dizelerini almaktadır.

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

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

Hesap Anahtarlarını Yeniden Oluşturma

Bağlantıların güvenliğinin Cosmos için Azure Cosmos hesabının erişim anahtarları düzenli aralıklarla yeniden üret gerekir. Hesaba birincil ve ikincil erişim anahtarları atanır. Bu, istemcilerin aynı anda bir anahtar yeniden oluşturulurken erişimi sürdürmesini sağlar. Azure Cosmos hesabı için dört tür anahtar vardır (Birincil, İkincil, PrimaryReadonly ve 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

Otomatik yük devretmeyi etkinleştirme

Aşağıdaki komut, birincil Cosmos kullanılamaz duruma gelirse otomatik olarak ikincil bölgeye yük devretmek için bir veritabanı hesabı ayarlar.

$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 automatic failover
Update-AzCosmosDBAccount `
    -ResourceGroupName $resourceGroupName `
    -Name $accountName `
    -EnableAutomaticFailover:$enableAutomaticFailover

Yük Devretme Önceliğini Değiştirme

Otomatik Yük Devretme ile yapılandırılan hesaplar için, birincil çoğaltmanın kullanılamaz duruma Cosmos ikincil çoğaltmaları birincile yükseltecekleri sırayı değiştirebilirsiniz.

Aşağıdaki örnek için geçerli yük devretme önceliğinin West US 2 = 0 , , olduğunu East US 2 = 1 South Central US = 2 varsayın. Komut bunu , West US 2 = 0 , olarak South Central US = 1 East US 2 = 2 değiştirir.

Dikkat

konumunu değiştirmek, Azure Cosmos hesabı için failoverPriority=0 el ile yük devretme tetikler. Diğer öncelik değişiklikleri yük devretmeyi tetiklemez.

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

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

El ile Yük DevretmeYi Tetikleme

El ile Yük Devretme ile yapılandırılan hesaplar için, olarak değiştirerek yük devretme ve ikincil çoğaltmaları birincil çoğaltmaya failoverPriority=0 yükseltebilirsiniz. Bu işlem, olağanüstü durum kurtarma planlamasını test etmek için bir olağanüstü durum kurtarma tatbikatı başlatmak için kullanılabilir.

Aşağıdaki örnekte, hesabın geçerli yük devretme önceliğe sahip olduğunu varsayın West US 2 = 0 ve East US 2 = 1 bölgeleri çevirin.

Dikkat

ifadesinin değiştirilmesi, Azure Cosmos hesabı locationName için el ile yük devretme failoverPriority=0 tetikler. Başka bir öncelik değişikliği yük devretmeyi tetiklemez.

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

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

Azure Cosmos DB hesabında kaynak kilitlerini listele

Kaynak kilitleri, veritabanları ve koleksiyonlar Cosmos veritabanı kaynaklarına yerleştirilebilirsiniz. Aşağıdaki örnekte, bir Azure veritabanı hesabı üzerinde tüm Azure kaynak kilitlerinin nasıl Cosmos gösterilmiştir.

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

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

Azure Cosmos DB Veritabanı

Aşağıdaki bölümlerde Aşağıdakiler dahil olmak üzere Azure Cosmos DB veritabanının nasıl yönetildi?

Azure Cosmos DB veritabanı oluşturma

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

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

Paylaşılan aktarım hızıyla Cosmos veritabanı oluşturma

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

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

Azure Cosmos DB veritabanının aktarım hızını alma

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

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

Veritabanı aktarım hızını otomatik ölçeklendirmeye geçirme

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

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

Hesapta tüm Azure Cosmos DB veritabanlarını alma

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

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

Tek bir Azure Cosmos DB veritabanı alma

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

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

Azure Cosmos DB veritabanını silme

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

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

Silmeyi önlemek için Azure Cosmos DB veritabanında kaynak kilidi oluşturma

$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 veritabanındaki kaynak kilidini kaldırma

$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 Kapsayıcısı

Aşağıdaki bölümlerde, Azure Cosmos DB kapsayıcısı nasıl yönetebilirsiniz?

Azure Cosmos DB kapsayıcısı oluşturma

# 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

Otomatik ölçeklendirme ile Azure Cosmos DB kapsayıcısı oluşturma

# 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

Büyük bölüm anahtarı Cosmos Bir Azure Cosmos DB kapsayıcısı oluşturma

# 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 kapsayıcısı aktarım hızını alma

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

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

Kapsayıcı aktarım hızını otomatik ölçeklendirmeye geçirme

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

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

Özel dizin ilkesi Cosmos Azure Cosmos DB kapsayıcısı oluşturma

# 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

Dizin oluşturma Cosmos Azure Cosmos DB kapsayıcısı oluşturma

# 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

Benzersiz anahtar ilkesi Cosmos TTL ile Azure Cosmos DB kapsayıcısı oluşturma

# 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

Çakışma çözümüyle azure Cosmos DB kapsayıcısı oluşturma

Tüm çakışmaları ConflictsFeed'e yazmak ve ayrı olarak işlemek için -Type "Custom" -Path "" geçiş.

# 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

Saklı yordam kullanmak üzere bir çakışma çözümleme ilkesi oluşturmak için ve parametrelerini New-AzCosmosDBSqlConflictResolutionPolicy çağırarak -Type ve ile geçişlerini -ConflictResolutionProcedure girin.

# 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

Veritabanındaki tüm Azure Cosmos DB kapsayıcılarını listele

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

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

Veritabanında tek bir Azure Cosmos DB kapsayıcısı alma

# 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 kapsayıcısı silme

# Delete an Azure Cosmos DB container
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"

Remove-AzCosmosDBSqlContainer `
    -ResourceGroupName $resourceGroupName `
    -AccountName $accountName `
    -DatabaseName $databaseName `
    -Name $containerName

Silmeyi önlemek için Azure Cosmos DB kapsayıcısı üzerinde kaynak kilidi oluşturma

$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 kapsayıcısı üzerinde kaynak kilidini kaldırma

$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

Sonraki adımlar