PowerShell kullanarak NoSQL için Azure Cosmos DB kaynaklarını yönetme

UYGULANANLAR: NoSQL

Aşağıdaki kılavuzda Azure Cosmos DB hesabı, veritabanı, kapsayıcı ve aktarım hızı dahil olmak üzere NoSQL için Azure Cosmos DB kaynaklarının yönetimini betik oluşturmak ve otomatikleştirmek için PowerShell'in nasıl kullanılacağı açıklanmaktadır. Diğer API'ler için PowerShell cmdlet'leri için bkz . Cassandra için PowerShell Örnekleri, MongoDB için PowerShell Örnekleri, Gremlin için PowerShell Örnekleri, Tablo için PowerShell Örnekleri

Dekont

Bu makaledeki örneklerde Az.CosmosDB yönetim cmdlet'leri kullanılı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.CosmosDB cmdlet'lerini platformlar arası PowerShell'in yanı sıra Azure CLI, REST API veya Azure portalı ile kullanabilirsinizAz.

Dekont

Azure ile etkileşim kurmak için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz. Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.

Kullanmaya Başlama

PowerShell'de Azure hesabınızı yüklemek ve oturum açmak için Azure PowerShell'i yükleme ve yapılandırma başlığındaki yönergeleri izleyin.

Önemli

Azure Resource Manager'ın kaynak URI'leriyle çalışma biçimini ihlal eden Azure Cosmos DB kaynakları yeniden adlandırılamaz.

Azure Cosmos DB hesapları

Aşağıdaki bölümlerde Azure Cosmos DB hesabının nasıl yönetileceğini gösterir; örneğin:

Azure Cosmos DB hesabı oluşturma

Bu komut birden çok bölgeye, hizmet tarafından yönetilen yük devretmeye ve sınırlanmış eskime tutarlılığı ilkesine sahip 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
  • $resourceGroupName Azure Cosmos DB hesabının dağıtılacağı Azure kaynak grubu. Zaten var olması gerekir.
  • $locations Veritabanı hesabının bölgeleri, ile bölgesi FailoverPriority 0 yazma bölgesidir.
  • $accountName Azure Cosmos DB hesabının adı. Benzersiz, küçük harfli olmalı, yalnızca alfasayısal ve '-' karakterleri içermeli ve 3 ile 31 karakter uzunluğunda olmalıdır.
  • $apiKind Oluşturulacak Azure Cosmos DB hesabının türü. Daha fazla bilgi için bkz . Azure Cosmos DB'deki API'ler.
  • $consistencyPolicy, $maxStalenessIntervalve $maxStalenessPrefix Azure Cosmos DB hesabının varsayılan tutarlılık düzeyi ve ayarları. Daha fazla bilgi için bkz . Azure Cosmos DB'de Tutarlılık Düzeyleri.

Azure Cosmos DB hesapları IP Güvenlik Duvarı, Sanal Ağ hizmet uç noktaları ve özel uç noktalar ile yapılandırılabilir. 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.

Kaynak Grubundaki tüm Azure Cosmos DB hesaplarını listeleme

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

$resourceGroupName = "myResourceGroup"

Get-AzCosmosDBAccount -ResourceGroupName $resourceGroupName

Azure Cosmos DB hesabının özelliklerini alma

Bu komut, mevcut bir Azure Cosmos DB hesabının özelliklerini almanıza olanak tanır.

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

Get-AzCosmosDBAccount -ResourceGroupName $resourceGroupName -Name $accountName

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

Bu komut, Azure Cosmos DB veritabanı hesabı özelliklerinizi güncelleştirmenizi sağlar. Güncelleştirilebilecek özellikler şunlardır:

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

Dekont

Azure Cosmos DB hesabının bölgelerini (locations) aynı anda ekleyemez veya kaldıramaz ve diğer özelliklerini değiştiremezsiniz. Bölgeleri değiştirme işlemi, hesapta yapılan diğer değişikliklerden ayrı bir işlem olarak gerçekleştirilmelidir.

Dekont

Bu komut bölgeleri eklemenizi ve kaldırmanızı 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.

Bahşiş

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şlemin süresi, hesapta ne kadar veri depolandığına bağlıdır. Zaman uyumsuz bir aktarım hızı ölçeklendirme işlemi devam ederse, aktarım hızı ölçeği artırma işlemi duraklatılır ve bölge ekleme/kaldırma işlemi tamamlandığında otomatik olarak sürdürülü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 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 hesabı için birden çok yazma bölgesini etkinleştirme

$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 hesabını silme

Bu komut mevcut bir Azure Cosmos DB hesabını siler.

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

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

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

Bu komut, bir Azure Cosmos DB hesabı için Azure kaynak etiketlerini ayarlar. Etiketler hem kullanılarak New-AzCosmosDBAccount hesap oluşturmada hem de kullanılarak Update-AzCosmosDBAccounthesap güncelleştirmesinde ayarlanabilir.

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

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

Hesap Anahtarlarını Listele

Azure Cosmos DB hesabı oluşturduğunuzda hizmet, Azure Cosmos DB hesabına erişildiğinde kimlik doğrulaması için kullanılabilecek iki birincil erişim anahtarı oluşturur. Salt okunur işlemlerin kimliğini doğrulamak için salt okunur anahtarlar da oluşturulur. Azure Cosmos DB, iki erişim anahtarı sağlayarak Azure Cosmos DB hesabınızda kesinti olmadan bir anahtarı aynı anda yeniden oluşturmanıza ve döndürmenize olanak tanır. Azure Cosmos DB hesaplarında 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"

Liste Bağlan ion Dizeleri

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

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

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

Hesap Anahtarlarını Yeniden Oluştur

Bağlantıların güvenli kalmasına yardımcı olmak için Azure Cosmos DB hesabına erişim anahtarları düzenli aralıklarla yeniden oluşturulmalıdır. Hesaba birincil ve ikincil erişim anahtarları atanır. Bu, istemcilerin aynı anda bir anahtar yeniden oluşturulurken erişimi korumasını sağlar. Azure Cosmos DB hesabı için dört tür anahtar vardır (Primary, Secondary, 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

Hizmet tarafından yönetilen yük devretmeyi etkinleştirme

Aşağıdaki komut bir Azure Cosmos DB hesabını, birincil bölge kullanılamaz duruma gelirse ikincil bölgesine hizmet tarafından yönetilen bir yük devretme gerçekleştirecek şekilde 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 service-managed failover
Update-AzCosmosDBAccount `
    -ResourceGroupName $resourceGroupName `
    -Name $accountName `
    -EnableAutomaticFailover:$enableAutomaticFailover

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

Hizmet Tarafından Yönetilen Yük Devretme ile yapılandırılan hesaplar için, birincil çoğaltma kullanılamaz duruma gelirse Azure Cosmos DB'nin ikincil çoğaltmaları birincile yükseltme sırasını değiştirebilirsiniz.

Aşağıdaki örnekte geçerli yük devretme önceliğinin , , East US = 1South Central US = 2olduğunu West US = 0varsayalım. Komutu bunu West US = 0, , South Central US = 1East US = 2olarak değiştirir.

Dikkat

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

$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

El ile Yük Devretmeyi Tetikleme

El ile Yük Devretme ile yapılandırılan hesaplar için yük devretme yapabilir ve öğesini değiştirerek ikincil çoğaltmaları birincil çoğaltmaya failoverPriority=0yü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ğine West US = 0 sahip olduğunu varsayalım ve East US = 1 bölgeleri çevirin.

Dikkat

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

Dekont

Zaman uyumsuz aktarım hızı ölçeklendirme işlemi devam ederken el ile yük devretme işlemi gerçekleştirirseniz, aktarım hızı ölçeği artırma işlemi duraklatılır. Yük devretme işlemi tamamlandığında otomatik olarak sürdürülür.

$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 hesabında kaynak kilitlerini listeleme

Kaynak kilitleri, veritabanları ve koleksiyonlar dahil olmak üzere Azure Cosmos DB kaynaklarına yerleştirilebilir. Aşağıdaki örnekte, bir Azure Cosmos DB hesabındaki tüm Azure kaynak kilitlerinin nasıl listelenmiş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 Azure Cosmos DB veritabanının nasıl yönetileceğinin nasıl yönetileceğinin gösterildiği gibi:

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 Azure Cosmos DB 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

Bir hesaptaki 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ında 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ının nasıl yönetileceğini göstermektedir:

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ı boyutuna sahip 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ının 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 ilkesiyle 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 özelliği kapalıyken 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 ve 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ümlemesi ile Azure Cosmos DB kapsayıcısı oluşturma

Tüm çakışmaları ConflictsFeed öğesine yazmak ve ayrı olarak işlemek için geçirin -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

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

# 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ı listeleme

# 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ı üzerindeki 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