다음을 통해 공유


PowerShell을 사용하여 NoSQL 리소스용 Azure Cosmos DB 관리

다음 가이드에서는 PowerShell을 사용하여 Azure Cosmos DB 계정, 데이터베이스, 컨테이너 및 처리량을 포함하여 NoSQL 리소스용 Azure Cosmos DB의 관리를 스크립트하고 자동화하는 방법을 설명합니다. 다른 API용 PowerShell cmdlet의 경우 Cassandra용 PowerShell 샘플, MongoDB용 API용 PowerShell 샘플, Gremlin용 PowerShell 샘플, 테이블용 PowerShell 샘플을 참조하세요.

비고

이 문서의 샘플에서는 Az.CosmosDB 관리 cmdlet을 사용합니다. 최신 변경 내용은 Az.CosmosDB API 참조 페이지를 참조하세요.

Azure Cosmos DB의 플랫폼 간 관리를 위해 AzAz.CosmosDBAzure CLI, REST API 또는 Azure Portal에서 cmdlet을 사용할 수 있습니다.

비고

Azure Az PowerShell 모듈을 사용하여 Azure와 상호 작용하는 것이 좋습니다. 시작하려면 Azure PowerShell 설치를 참조하세요. Az PowerShell 모듈로 마이그레이션하는 방법에 대한 자세한 내용은 Azure PowerShell을 AzureRM에서 Azure로 마이그레이션을 참조하세요.

시작하기

PowerShell에서 Azure 계정을 설치하고 로그인하도록 Azure PowerShell을 설치하고 구성하는 방법의 지침을 따릅니다.

중요합니다

Azure Resource Manager가 리소스 URI에서 작동하는 방식을 위반하기 때문에 Azure Cosmos DB 리소스의 이름을 바꿀 수 없습니다.

Azure Cosmos DB 계정

다음 섹션에서는 아래 작업을 포함하여 Azure Cosmos DB 계정을 관리하는 방법을 보여 줍니다.

Azure Cosmos DB 계정 만들기

이 명령은 여러 지역, 서비스 관리 장애 조치(failover) 및 제한된 부실 일관성 정책을 사용하여 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
  • $resourceGroupName Azure Cosmos DB 계정을 배포할 Azure 리소스 그룹입니다. 이미 존재해야 합니다.
  • $locations 데이터베이스 계정의 지역이며, 해당 지역은 FailoverPriority 0 쓰기 지역입니다.
  • $accountName Azure Cosmos DB 계정의 이름입니다. 고유하고 소문자여야 하며 영숫자와 '-' 문자만 포함하며 길이는 3~31자여야 합니다.
  • $apiKind 만들 Azure Cosmos DB 계정의 유형입니다. 자세한 내용은 Azure Cosmos DB의 API를 참조하세요.
  • $consistencyPolicy, $maxStalenessInterval$maxStalenessPrefix Azure Cosmos DB 계정의 기본 일관성 수준 및 설정입니다. 자세한 내용은 Azure Cosmos DB의 일관성 수준을 참조하세요.

Azure Cosmos DB 계정은 IP 방화벽, Virtual Network 서비스 엔드포인트 및 프라이빗 엔드포인트를 사용하여 구성할 수 있습니다. 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 범위 필터 변경
  • Virtual Network 구성 변경
  • 다중 지역 쓰기 사용

비고

Azure Cosmos DB 계정에 대한 지역(locations)을 동시에 추가 또는 제거하고 다른 속성을 변경할 수 없습니다. 지역 수정은 계정에 대한 다른 변경 내용과는 별개의 작업으로 수행되어야 합니다.

비고

이 명령을 사용하면 지역을 추가 및 제거할 수 있지만 장애 조치(failover) 우선 순위를 수정하거나 수동 장애 조치(failover)를 트리거할 수 없습니다. 장애 조치(failover) 우선 순위 수정수동 장애 조치(failover) 트리거를 참조하세요.

팁 (조언)

새 지역이 추가되면 해당 지역이 사용 가능으로 표시되기 전에 모든 데이터를 완전히 복제하고 새 지역에 커밋해야 합니다. 이 작업에 걸리는 시간은 해당 계정 내에 저장된 데이터 양에 따라 달라집니다. 비동기 처리량 스케일링 작업이 진행 중인 경우 처리량 스케일 업 작업이 일시 중지되고 영역 추가/제거 작업이 완료되면 자동으로 다시 시작됩니다.

# 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

서비스 관리 장애 조치(failover) 사용

다음 명령은 주 지역을 사용할 수 없게 될 경우 보조 지역으로 서비스 관리 장애 조치(failover)를 수행하도록 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가 보조 복제본을 기본 복제본으로 승격하는 순서를 변경할 수 있습니다.

아래 예제에서는 현재 장애 조치(failover) 우선순위가 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 계정에 수동 장애 조치(failover)가 활성화됩니다. 다른 우선 순위 변경은 장애 조치(failover)를 트리거하지 않습니다.

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

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

수동 장애 조치 시작

수동 장애 조치(failover)로 구성된 계정의 경우, 보조 복제본을 주 복제본으로 승격할 수 있도록 failoverPriority=0를 수정할 수 있습니다. 이 작업을 사용하여 재해 복구 훈련을 시작하여 재해 복구 계획을 테스트할 수 있습니다.

아래 예제에서는 계정에 현재 장애 조치(failover) 우선 순위 West US = 0가 있다고 가정하고, East US = 1 지역을 전환합니다.

주의

locationName을/를 failoverPriority=0로 변경하면 Azure Cosmos DB 계정에 대한 수동 장애 조치(failover)가 트리거됩니다. 다른 우선 순위 변경은 장애 조치를 발생시키지 않습니다.

비고

비동기식 처리량 스케일링 작업이 진행되는 동안 수동 장애 조치 작업을 수행하면 처리량 스케일 업 작업이 일시 중지됩니다. 장애 조치 작업이 완료되면 자동으로 다시 시작됩니다.

$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 데이터베이스 만들기

$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 컨테이너 만들기

# 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

다음 단계