以下指南說明如何使用 PowerShell 來編寫腳本並自動化管理 Azure Cosmos DB 的 NoSQL 資源,包括 Azure Cosmos DB 帳號、資料庫、容器及吞吐量。 關於其他 API 的 PowerShell cmdlet,請參考 PowerShell Samples for Cassandra、 PowerShell Samples for API for MongoDB、 PowerShell Samples for Gremlin、 PowerShell Samples for Table
備註
本文範例使用 Az.CosmosDB 管理指令碼。 最新變更請參閱 Az.CosmosDB API 參考頁面。
若要跨平台管理 Azure Cosmos DB,你可以使用 Az 與 Az.CosmosDB cmdlet 搭配 跨平台 PowerShell,或者使用 Azure CLI、REST API 或 Azure 管理入口網站。
備註
建議您使用 Azure Az PowerShell 模組來與 Azure 互動。 開始使用前,請參閱安裝 Azure PowerShell。 若要了解如何移轉至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 移轉至 Az。
使用者入門
請依照 「如何安裝與設定 Azure PowerShell 」的說明,在 PowerShell 中安裝並登入你的 Azure 帳號。
這很重要
Azure Cosmos DB 資源無法重新命名,因為這違反 Azure Resource Manager 與資源 URI 的運作方式。
Azure Cosmos DB 帳戶
下列各節會示範如何管理 Azure Cosmos DB 帳戶,包括:
- 建立 Azure Cosmos DB 帳戶
- 更新 Azure Cosmos DB 帳戶
- 在訂閱中列出所有 Azure Cosmos DB 帳戶
- 申請一個Azure Cosmos DB帳戶
- Delete an Azure Cosmos DB account
- 更新 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
-
$resourceGroupNameAzure 資源群組,用來部署 Azure Cosmos DB 帳號。 它一定已經存在了。 -
$locations資料庫帳號的區域,其中 的FailoverPriority 0區域是寫入區域。 -
$accountNameAzure Cosmos 資料庫帳號的名稱。 必須是唯一、小寫、僅包含字母數字和「-」字元,且字元長度介於 3 到 31 個字元之間。 -
$apiKind要建立的 Azure Cosmos DB 帳號類型。 欲了解更多資訊,請參閱 Azure Cosmos DB 中的 API。 -
$consistencyPolicy、$maxStalenessInterval,以及$maxStalenessPrefixAzure Cosmos資料庫帳號的預設一致性等級與設定。 欲了解更多資訊,請參閱 Azure Cosmos DB 中的一致性等級。
Azure Cosmos DB 帳號可以配置 IP 防火牆、虛擬網路服務端點和私有端點。 關於如何設定 Azure Cosmos 資料庫的 IP 防火牆,請參見 「配置 IP 防火牆」。 關於如何啟用 Azure Cosmos DB 的服務端點資訊,請參見 「從虛擬網路設定存取權限」。 關於如何啟用 Azure Cosmos DB 的私有端點資訊,請參見 「從私有端點配置存取」。
在資源群組中列出所有 Azure Cosmos DB 帳號
此指令會列出所有 Azure Cosmos 資料庫帳戶在資源群組中。
$resourceGroupName = "myResourceGroup"
Get-AzCosmosDBAccount -ResourceGroupName $resourceGroupName
取得 Azure Cosmos DB 帳號的屬性信息
這個指令允許你取得現有 Azure Cosmos 資料庫帳號的屬性。
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
Get-AzCosmosDBAccount -ResourceGroupName $resourceGroupName -Name $accountName
更新 Azure Cosmos DB 帳戶
這個指令允許你更新 Azure Cosmos DB 資料庫帳戶的屬性。 可更新的物業包括以下幾項:
- 新增或移除區域
- 變更預設一致性政策
- 變更 IP 範圍過濾器
- 變更虛擬網路配置
- 啟用多區域寫入
備註
你無法同時新增或移除區域()locations並更改 Azure Cosmos 資料庫帳號的其他屬性。 修改區域必須作為與帳戶其他變更分開的操作執行。
小提示
新增區域時,所有資料都必須完全複寫並認可到新的區域,才能將該區域標示為可用。 此作業所需的時間取決於帳戶中儲存的資料量。 如果非同步輸送量調整作業正在進行中,輸送量擴大規模作業將會暫停,並會在新增/移除區域作業完成時自動繼續。
# 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 資料庫帳號。
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
Remove-AzCosmosDBAccount `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-PassThru:$true
更新 Azure Cosmos DB 帳戶的標籤
這個指令是為 Azure Cosmos DB 帳號設定 Azure 資源標籤 。 標籤可以在帳號建立時使用 S 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 Cosmos 資料庫帳號上所有 Azure 資源鎖。
$resourceGroupName = "myResourceGroup"
$resourceTypeAccount = "Microsoft.DocumentDB/databaseAccounts"
$accountName = "mycosmosaccount"
Get-AzResourceLock `
-ResourceGroupName $resourceGroupName `
-ResourceType $resourceTypeAccount `
-ResourceName $accountName
Azure Cosmos DB 資料庫
下列各節會示範如何管理 Azure Cosmos DB 資料庫,包括:
- Create a Azure Cosmos DB database
- 建立一個具有共享吞吐量的 Azure Cosmos DB 資料庫
- 取得 Azure Cosmos DB 資料庫的吞吐量
- 將資料庫吞吐量遷移至自動調整
- 列出帳戶中所有的 Azure Cosmos DB 資料庫
- 取得單一 Azure Cosmos DB 資料庫
- 刪除 Azure Cosmos DB 資料庫
- 在 Azure Cosmos 資料庫建立資源鎖以防止刪除
- 移除 Azure Cosmos 資料庫上的資源鎖
建立 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 資料庫建立資源鎖以防止刪除
$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 資料庫上的資源鎖
$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 容器,包括:
- Create a Azure Cosmos DB container
- 建立具自動調整功能的 Azure Cosmos DB 容器
- 建立一個帶有大型分割鍵的 Azure Cosmos DB 容器
- 取得 Azure Cosmos DB 容器的吞吐量
- 將容器吞吐量遷移到自動擴展
- 建立具有自訂索引的 Azure Cosmos DB 容器
- 建立一個關閉索引功能的 Azure Cosmos 資料庫容器
- 建立一個帶有唯一金鑰和 TTL 的 Azure Cosmos DB 容器
- 建立一個帶有衝突解決功能的 Azure Cosmos DB 容器
- 列出資料庫中的所有 Azure Cosmos DB 容器
- 喺資料庫中取得一個單一 Azure Cosmos DB 容器
- Delete an Azure Cosmos DB container
- 在 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 資料庫容器
# 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
建立一個具有獨特金鑰政策和 TTL 的 Azure Cosmos DB 容器
# 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 容器
若要將所有衝突寫入 ConflictsFeed 並分別處理,請傳遞 -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