次のガイドでは、PowerShell を使用して、Azure Cosmos DB アカウント、データベース、コンテナー、スループットなどの Azure Cosmos DB for NoSQL リソースの管理をスクリプト化して自動化する方法について説明します。 その他の API の PowerShell コマンドレットについては、Cassandra 用 PowerShell サンプル、MongoDB 用 API 用 PowerShell サンプル、Gremlin 用 PowerShell サンプル、テーブル用 PowerShell サンプルを参照してください。
注
この記事のサンプルでは、 Az.CosmosDB 管理コマンドレットを使用します。 最新の変更については、 Az.CosmosDB API リファレンス ページを参照してください。
Azure Cosmos DB のクロスプラットフォーム管理では、Az、Az.CosmosDB、REST API、または Azure portal でコマンドレットとコマンドレットを使用できます。
注
Azure Az PowerShell モジュールを使用して Azure と対話することをお勧めします。 作業を始めるには、「Azure PowerShell をインストールする」を参照してください。 Az PowerShell モジュールに移行する方法については、「 Azure PowerShell を AzureRM から Az に移行する」を参照してください。
はじめに
PowerShell で Azure アカウントをインストールしてサインインするように Azure PowerShell をインストールして構成する方法に関するページの手順に従います。
Important
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 アカウントを取得する
- Azure Cosmos DB アカウントを削除する
- Azure Cosmos DB アカウントのタグを更新する
- Azure Cosmos DB アカウントのフェールオーバー優先度を変更する
- Azure Cosmos DB アカウントの手動フェールオーバーをトリガーする
- Azure Cosmos DB アカウントのリソース ロックを一覧表示する
Azure Cosmos DB アカウントを作成する
このコマンドは、複数のリージョン、サービス管理フェールオーバー、そして有界整合性ポリシーを使用してAzure Cosmos DB データベース アカウントを作成します。
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$apiKind = "Sql"
$consistencyLevel = "BoundedStaleness"
$maxStalenessInterval = 300
$maxStalenessPrefix = 100000
$locations = @()
$locations += New-AzCosmosDBLocationObject -LocationName "East US" -FailoverPriority 0 -IsZoneRedundant 0
$locations += New-AzCosmosDBLocationObject -LocationName "West US" -FailoverPriority 1 -IsZoneRedundant 0
New-AzCosmosDBAccount `
-ResourceGroupName $resourceGroupName `
-LocationObject $locations `
-Name $accountName `
-ApiKind $apiKind `
-EnableAutomaticFailover:$true `
-DefaultConsistencyLevel $consistencyLevel `
-MaxStalenessIntervalInSeconds $maxStalenessInterval `
-MaxStalenessPrefix $maxStalenessPrefix
-
$resourceGroupNameAzure Cosmos DB アカウントをデプロイする Azure リソース グループ。 既に存在している必要があります。 -
$locationsデータベース アカウントのリージョン。FailoverPriority 0を持つリージョンは書き込みリージョンです。 -
$accountNameAzure Cosmos DB アカウントの名前。 一意、小文字、英数字と '-' 文字のみを含め、長さは 3 ~ 31 文字にする必要があります。 -
$apiKind作成する Azure Cosmos DB アカウントの種類。 詳細については、 Azure Cosmos DB の API に関するページを参照してください。 -
$consistencyPolicy、$maxStalenessInterval、$maxStalenessPrefixAzure Cosmos DB アカウントの既定の整合性レベルと設定。 詳細については、「 Azure Cosmos DB の整合性レベル」を参照してください。
Azure Cosmos DB アカウントは、IP ファイアウォール、仮想ネットワーク サービス エンドポイント、プライベート エンドポイントを使用して構成できます。 Azure Cosmos DB の IP ファイアウォールを構成する方法については、「 IP ファイアウォールの構成」を参照してください。 Azure Cosmos DB のサービス エンドポイントを有効にする方法については、「 仮想ネットワークからのアクセスの構成」を参照してください。 Azure Cosmos DB のプライベート エンドポイントを有効にする方法については、「 プライベート エンドポイントからのアクセスを構成する」を参照してください。
リソース グループ内のすべての Azure Cosmos DB アカウントを一覧表示する
このコマンドは、リソース グループ内のすべての Azure Cosmos DB アカウントを一覧表示します。
$resourceGroupName = "myResourceGroup"
Get-AzCosmosDBAccount -ResourceGroupName $resourceGroupName
Azure Cosmos DB アカウントのプロパティを取得する
このコマンドを使用すると、既存の Azure Cosmos DB アカウントのプロパティを取得できます。
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
Get-AzCosmosDBAccount -ResourceGroupName $resourceGroupName -Name $accountName
Azure Cosmos DB アカウントを更新する
このコマンドを使用すると、Azure Cosmos DB データベース アカウントのプロパティを更新できます。 更新できるプロパティは次のとおりです。
- リージョンの追加または削除
- 既定の整合性ポリシーの変更
- IP 範囲フィルターの変更
- 仮想ネットワーク構成の変更
- 複数リージョンの書き込みを有効にする
注
Azure Cosmos DB アカウントのリージョン (locations) を同時に追加または削除したり、その他のプロパティを変更したりすることはできません。 変更リージョンは、アカウントに対する他の変更とは別の操作として実行する必要があります。
注
このコマンドでは、リージョンの追加および削除が可能ですが、フェールオーバー優先度を変更したり手動フェールオーバーをトリガーしたりすることはできません。 フェールオーバー優先度の変更と手動フェールオーバーのトリガーに関するページを参照してください。
ヒント
新しいリージョンが追加されるとき、すべてのデータが新しいリージョンに完全にレプリケートおよびコミットされるまで、リージョンには使用可能のマークが付きません。 この操作にかかる時間は、アカウント内に保存されているデータの量によって変動します。 非同期スループット スケーリング操作が進行中の場合、スループットのスケールアップ操作は一時停止され、リージョンの追加または削除操作が完了すると自動的に再開されます。
# Create account with two regions
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$apiKind = "Sql"
$consistencyLevel = "Session"
$enableAutomaticFailover = $true
$locations = @()
$locations += New-AzCosmosDBLocationObject -LocationName "East US" -FailoverPriority 0 -IsZoneRedundant 0
$locations += New-AzCosmosDBLocationObject -LocationName "West US" -FailoverPriority 1 -IsZoneRedundant 0
# Create the Azure Cosmos DB account
New-AzCosmosDBAccount `
-ResourceGroupName $resourceGroupName `
-LocationObject $locations `
-Name $accountName `
-ApiKind $apiKind `
-EnableAutomaticFailover:$enableAutomaticFailover `
-DefaultConsistencyLevel $consistencyLevel
# Add a region to the account
$locationObject2 = @()
$locationObject2 += New-AzCosmosDBLocationObject -LocationName "East US" -FailoverPriority 0 -IsZoneRedundant 0
$locationObject2 += New-AzCosmosDBLocationObject -LocationName "West US" -FailoverPriority 1 -IsZoneRedundant 0
$locationObject2 += New-AzCosmosDBLocationObject -LocationName "South Central US" -FailoverPriority 2 -IsZoneRedundant 0
Update-AzCosmosDBAccountRegion `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-LocationObject $locationObject2
Write-Host "Update-AzCosmosDBAccountRegion returns before the region update is complete."
Write-Host "Check account in Azure portal or using Get-AzCosmosDBAccount for region status."
Write-Host "When region was added, press any key to continue."
$HOST.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") | OUT-NULL
$HOST.UI.RawUI.Flushinputbuffer()
# Remove West US region from the account
$locationObject3 = @()
$locationObject3 += New-AzCosmosDBLocationObject -LocationName "East US" -FailoverPriority 0 -IsZoneRedundant 0
$locationObject3 += New-AzCosmosDBLocationObject -LocationName "South Central US" -FailoverPriority 1 -IsZoneRedundant 0
Update-AzCosmosDBAccountRegion `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-LocationObject $locationObject3
Write-Host "Update-AzCosmosDBAccountRegion returns before the region update is complete."
Write-Host "Check account in Azure portal or using Get-AzCosmosDBAccount for region status."
Azure Cosmos DB アカウントに対して複数の書き込みリージョンを有効にする
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$enableAutomaticFailover = $false
$enableMultiMaster = $true
# First disable service-managed failover - cannot have both service-managed
# failover and multi-region writes on an account
Update-AzCosmosDBAccount `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-EnableAutomaticFailover:$enableAutomaticFailover
# Now enable multi-region writes
Update-AzCosmosDBAccount `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-EnableMultipleWriteLocations:$enableMultiMaster
Azure Cosmos DB アカウントを削除する
このコマンドを実行すると、既存の Azure Cosmos DB アカウントが削除されます。
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
Remove-AzCosmosDBAccount `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-PassThru:$true
Azure Cosmos DB アカウントのタグの更新
このコマンドは、Azure Cosmos DB アカウントの Azure リソース タグ を設定します。 タグは、 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
フェールオーバーの優先順位を変更する
Service-Managed フェールオーバーで構成されたアカウントの場合、プライマリが使用できなくなった場合に、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 DB アカウント上のすべての Azure リソース ロックを一覧表示する方法を示しています。
$resourceGroupName = "myResourceGroup"
$resourceTypeAccount = "Microsoft.DocumentDB/databaseAccounts"
$accountName = "mycosmosaccount"
Get-AzResourceLock `
-ResourceGroupName $resourceGroupName `
-ResourceType $resourceTypeAccount `
-ResourceName $accountName
Azure Cosmos DB データベース
以下のセクションでは、Azure Cosmos DB データベースの管理方法について説明します。
- Azure Cosmos DB データベースを作成する
- 共有スループットを使用して Azure Cosmos DB データベースを作成する
- Azure Cosmos DB データベースのスループットを取得する
- データベーススループットを自動スケーリングに移行する
- アカウント内のすべての Azure Cosmos DB データベースを一覧表示する
- 単一の Azure Cosmos DB データベースを取得する
- Azure Cosmos DB データベースを削除する
- 削除を防ぐために Azure Cosmos DB データベースにリソース ロックを作成する
- Azure Cosmos DB データベースのリソース ロックを削除する
Azure Cosmos DB データベースを作成する
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
New-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName
共有スループットを使用して Azure Cosmos DB データベースを作成する
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$databaseRUs = 400
New-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName `
-Throughput $databaseRUs
Azure Cosmos DB データベースのスループットを取得する
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Get-AzCosmosDBSqlDatabaseThroughput `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName
データベーススループットを自動スケーリングに移行する
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Invoke-AzCosmosDBSqlDatabaseThroughputMigration `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName `
-ThroughputType Autoscale
アカウント内のすべての Azure Cosmos DB データベースを取得する
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
Get-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName
単一の Azure Cosmos DB データベースを取得する
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Get-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName
Azure Cosmos DB データベースを削除する
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Remove-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName
削除を防ぐために Azure Cosmos DB データベースにリソース ロックを作成する
$resourceGroupName = "myResourceGroup"
$resourceType = "Microsoft.DocumentDB/databaseAccounts/sqlDatabases"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$resourceName = "$accountName/$databaseName"
$lockName = "myResourceLock"
$lockLevel = "CanNotDelete"
New-AzResourceLock `
-ResourceGroupName $resourceGroupName `
-ResourceType $resourceType `
-ResourceName $resourceName `
-LockName $lockName `
-LockLevel $lockLevel
Azure Cosmos DB データベースのリソース ロックを削除する
$resourceGroupName = "myResourceGroup"
$resourceType = "Microsoft.DocumentDB/databaseAccounts/sqlDatabases"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$resourceName = "$accountName/$databaseName"
$lockName = "myResourceLock"
Remove-AzResourceLock `
-ResourceGroupName $resourceGroupName `
-ResourceType $resourceType `
-ResourceName $resourceName `
-LockName $lockName
Azure Cosmos DB コンテナー
以下のセクションでは、Azure Cosmos DB コンテナーの管理方法について説明します。
- Azure Cosmos DB コンテナーを作成する
- 自動スケーリングを使用して Azure Cosmos DB コンテナーを作成する
- 大きなパーティション キーを使用して Azure Cosmos DB コンテナーを作成する
- Azure Cosmos DB コンテナーのスループットを取得する
- コンテナーのスループットを自動スケーリングに移行する
- カスタム インデックス作成を使用して Azure Cosmos DB コンテナーを作成する
- インデックス作成が無効になっている Azure Cosmos DB コンテナーを作成する
- 一意のキーと TTL を使用して Azure Cosmos DB コンテナーを作成する
- 競合解決を使用して Azure Cosmos DB コンテナーを作成する
- データベース内のすべての Azure Cosmos DB コンテナーを一覧表示する
- データベース内の単一の Azure Cosmos DB コンテナーを取得する
- Azure Cosmos DB コンテナーを削除する
- 削除を防ぐために Azure Cosmos DB コンテナーにリソース ロックを作成する
- Azure Cosmos DB コンテナーのリソース ロックを削除する
Azure Cosmos DB コンテナーを作成する
# Create an Azure Cosmos DB container with default indexes and throughput at 400 RU
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
$partitionKeyPath = "/myPartitionKey"
$throughput = 400 #minimum = 400
New-AzCosmosDBSqlContainer `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName `
-PartitionKeyKind Hash `
-PartitionKeyPath $partitionKeyPath `
-Throughput $throughput
自動スケーリングを使用して Azure Cosmos DB コンテナーを作成する
# Create an Azure Cosmos DB container with default indexes and autoscale throughput at 4000 RU
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
$partitionKeyPath = "/myPartitionKey"
$autoscaleMaxThroughput = 4000 #minimum = 4000
New-AzCosmosDBSqlContainer `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName `
-PartitionKeyKind Hash `
-PartitionKeyPath $partitionKeyPath `
-AutoscaleMaxThroughput $autoscaleMaxThroughput
パーティション キー サイズが大きい Azure Cosmos DB コンテナーを作成する
# Create an Azure Cosmos DB container with a large partition key value (version = 2)
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
$partitionKeyPath = "/myPartitionKey"
New-AzCosmosDBSqlContainer `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName `
-PartitionKeyKind Hash `
-PartitionKeyPath $partitionKeyPath `
-PartitionKeyVersion 2
Azure Cosmos DB コンテナーのスループットを取得する
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
Get-AzCosmosDBSqlContainerThroughput `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName
コンテナーのスループットを自動スケーリングに移行する
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
Invoke-AzCosmosDBSqlContainerThroughputMigration `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName `
-ThroughputType Autoscale
カスタム インデックス ポリシーを使用して Azure Cosmos DB コンテナーを作成する
# Create a container with a custom indexing policy
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
$partitionKeyPath = "/myPartitionKey"
$indexPathIncluded = "/*"
$indexPathExcluded = "/myExcludedPath/*"
$includedPathIndex = New-AzCosmosDBSqlIncludedPathIndex -DataType String -Kind Range
$includedPath = New-AzCosmosDBSqlIncludedPath -Path $indexPathIncluded -Index $includedPathIndex
$indexingPolicy = New-AzCosmosDBSqlIndexingPolicy `
-IncludedPath $includedPath `
-ExcludedPath $indexPathExcluded `
-IndexingMode Consistent `
-Automatic $true
New-AzCosmosDBSqlContainer `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName `
-PartitionKeyKind Hash `
-PartitionKeyPath $partitionKeyPath `
-IndexingPolicy $indexingPolicy
インデックス作成が無効になっている Azure Cosmos DB コンテナーを作成する
# Create an Azure Cosmos DB container with no indexing
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
$partitionKeyPath = "/myPartitionKey"
$indexingPolicy = New-AzCosmosDBSqlIndexingPolicy `
-IndexingMode None
New-AzCosmosDBSqlContainer `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName `
-PartitionKeyKind Hash `
-PartitionKeyPath $partitionKeyPath `
-IndexingPolicy $indexingPolicy
一意のキー ポリシーと 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