Zarządzanie zasobami usługi Azure Cosmos DB for NoSQL przy użyciu programu PowerShell
DOTYCZY: NoSQL
W poniższym przewodniku opisano sposób używania programu PowerShell do tworzenia skryptów i automatyzowania zarządzania zasobami usługi Azure Cosmos DB for NoSQL, w tym konta usługi Azure Cosmos DB, bazy danych, kontenera i przepływności. W przypadku poleceń cmdlet programu PowerShell dla innych interfejsów API zobacz Przykłady programu PowerShell dla cassandra, przykłady programu PowerShell dla interfejsu API dla bazy danych MongoDB, przykłady programu PowerShell dla języka Gremlin, przykłady programu PowerShell dla tabeli
Uwaga
Przykłady w tym artykule używają poleceń cmdlet zarządzania az.CosmosDB . Aby uzyskać najnowsze zmiany, zobacz stronę referencyjną interfejsu API az.CosmosDB .
W przypadku zarządzania międzyplatformowego usługi Azure Cosmos DB można używać Az
poleceń cmdlet i Az.CosmosDB
z programem PowerShell dla wielu platform, a także interfejsu wiersza polecenia platformy Azure, interfejsu API REST lub witryny Azure Portal.
Uwaga
Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Zobacz Instalowanie programu Azure PowerShell, aby rozpocząć. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.
Wprowadzenie
Postępuj zgodnie z instrukcjami w temacie Instalowanie i konfigurowanie programu Azure PowerShell w celu zainstalowania i zalogowania się do konta platformy Azure w programie PowerShell.
Ważne
Nie można zmienić nazwy zasobów usługi Azure Cosmos DB, ponieważ narusza to sposób działania usługi Azure Resource Manager z identyfikatorami URI zasobów.
Konta usługi Azure Cosmos DB
W poniższych sekcjach pokazano, jak zarządzać kontem usługi Azure Cosmos DB, w tym:
- Tworzenie konta usługi Azure Cosmos DB
- Aktualizowanie konta usługi Azure Cosmos DB
- Wyświetlanie listy wszystkich kont usługi Azure Cosmos DB w subskrypcji
- Uzyskiwanie konta usługi Azure Cosmos DB
- Usuwanie konta usługi Azure Cosmos DB
- Aktualizowanie tagów dla konta usługi Azure Cosmos DB
- Modyfikowanie priorytetu trybu failover dla konta usługi Azure Cosmos DB
- Wyzwalanie ręcznego przejścia w tryb failover dla konta usługi Azure Cosmos DB
- Wyświetlanie listy blokad zasobów na koncie usługi Azure Cosmos DB
Tworzenie konta usługi Azure Cosmos DB
To polecenie tworzy konto bazy danych usługi Azure Cosmos DB z wieloma regionami, zarządzanymi przez usługę zasadami spójności trybu failover i powiązana nieaktualność.
$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
Grupa zasobów platformy Azure, w której ma zostać wdrożone konto usługi Azure Cosmos DB. Musi już istnieć.$locations
Regiony dla konta bazy danych, region,FailoverPriority 0
w którym znajduje się region zapisu.$accountName
Nazwa konta usługi Azure Cosmos DB. Musi być unikatowa, małe litery, zawierać tylko znaki alfanumeryczne i "-" oraz od 3 do 31 znaków.$apiKind
Typ konta usługi Azure Cosmos DB do utworzenia. Aby uzyskać więcej informacji, zobacz Interfejsy API w usłudze Azure Cosmos DB.$consistencyPolicy
,$maxStalenessInterval
i$maxStalenessPrefix
domyślny poziom spójności i ustawienia konta usługi Azure Cosmos DB. Aby uzyskać więcej informacji, zobacz Poziomy spójności w usłudze Azure Cosmos DB.
Konta usługi Azure Cosmos DB można skonfigurować za pomocą zapory IP, punktów końcowych usługi sieci wirtualnej i prywatnych punktów końcowych. Aby uzyskać informacje na temat konfigurowania zapory ip dla usługi Azure Cosmos DB, zobacz Konfigurowanie zapory adresów IP. Aby uzyskać informacje na temat włączania punktów końcowych usługi dla usługi Azure Cosmos DB, zobacz Konfigurowanie dostępu z sieci wirtualnych. Aby uzyskać informacje na temat włączania prywatnych punktów końcowych dla usługi Azure Cosmos DB, zobacz Konfigurowanie dostępu z prywatnych punktów końcowych.
Wyświetlanie listy wszystkich kont usługi Azure Cosmos DB w grupie zasobów
To polecenie wyświetla listę wszystkich kont usługi Azure Cosmos DB w grupie zasobów.
$resourceGroupName = "myResourceGroup"
Get-AzCosmosDBAccount -ResourceGroupName $resourceGroupName
Pobieranie właściwości konta usługi Azure Cosmos DB
To polecenie umożliwia uzyskanie właściwości istniejącego konta usługi Azure Cosmos DB.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
Get-AzCosmosDBAccount -ResourceGroupName $resourceGroupName -Name $accountName
Aktualizowanie konta usługi Azure Cosmos DB
To polecenie umożliwia aktualizowanie właściwości konta bazy danych usługi Azure Cosmos DB. Właściwości, które można zaktualizować, obejmują następujące elementy:
- Dodawanie lub usuwanie regionów
- Zmienianie domyślnych zasad spójności
- Zmienianie filtru zakresu adresów IP
- Zmienianie konfiguracji sieci wirtualnej
- Włączanie zapisu w wielu regionach
Uwaga
Nie można jednocześnie dodawać ani usuwać regionów (locations
) ani zmieniać innych właściwości konta usługi Azure Cosmos DB. Modyfikowanie regionów należy wykonać jako oddzielną operację od każdej innej zmiany konta.
Uwaga
To polecenie umożliwia dodawanie i usuwanie regionów, ale nie pozwala na modyfikowanie priorytetów trybu failover lub wyzwalanie ręcznego trybu failover. Zobacz Modyfikowanie priorytetu trybu failover i Wyzwalanie ręcznego przejścia w tryb failover.
Napiwek
Gdy dodawany jest nowy region, wszystkie dane muszą zostać w pełni zreplikowane i zatwierdzone w nowym regionie, zanim region zostanie oznaczony jako dostępny. Czas potrzebny na wykonanie tej operacji zależy od ilości danych przechowywanych na koncie. Jeśli trwa operacja skalowania przepływności asynchronicznej, operacja skalowania przepływności w górę zostanie wstrzymana i zostanie wznowiona automatycznie po zakończeniu operacji dodawania/usuwania regionu.
# 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."
Włączanie wielu regionów zapisu dla konta usługi 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
Usuwanie konta usługi Azure Cosmos DB
To polecenie usuwa istniejące konto usługi Azure Cosmos DB.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
Remove-AzCosmosDBAccount `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-PassThru:$true
Aktualizowanie tagów konta usługi Azure Cosmos DB
To polecenie ustawia tagi zasobów platformy Azure dla konta usługi Azure Cosmos DB. Tagi można ustawiać zarówno podczas tworzenia konta, jak New-AzCosmosDBAccount
i aktualizacji konta przy użyciu polecenia Update-AzCosmosDBAccount
.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$tags = @{dept = "Finance"; environment = "Production";}
Update-AzCosmosDBAccount `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-Tag $tags
Włączanie trybu failover zarządzanego przez usługę
Następujące polecenie ustawia konto usługi Azure Cosmos DB w celu wykonania trybu failover zarządzanego przez usługę w regionie pomocniczym, jeśli region podstawowy stanie się niedostępny.
$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
Modyfikowanie priorytetu trybu failover
W przypadku kont skonfigurowanych przy użyciu trybu failover zarządzanego przez usługę można zmienić kolejność, w jakiej usługa Azure Cosmos DB podwyższy poziom replik pomocniczych do podstawowej, jeśli podstawowa stanie się niedostępna.
W poniższym przykładzie przyjęto założenie, że bieżący priorytet trybu failover to West US = 0
, East US = 1
, South Central US = 2
. Polecenie zmieni to na West US = 0
, South Central US = 1
, East US = 2
.
Uwaga
Zmiana lokalizacji dla failoverPriority=0
spowoduje wyzwolenie ręcznego przejścia w tryb failover dla konta usługi Azure Cosmos DB. Wszelkie inne zmiany priorytetów nie będą wyzwalać trybu 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
Wyzwalanie ręcznego przejścia w tryb failover
W przypadku kont skonfigurowanych przy użyciu ręcznego trybu failover można przejść w tryb failover i podwyższyć poziom dowolnej repliki pomocniczej do podstawowej, modyfikując element failoverPriority=0
. Tej operacji można użyć do zainicjowania próbnego odzyskiwania po awarii w celu przetestowania planowania odzyskiwania po awarii.
W poniższym przykładzie załóżmy, że konto ma bieżący priorytet West US = 0
trybu failover i East US = 1
przerzuca regiony.
Uwaga
Zmiana locationName
dla failoverPriority=0
spowoduje wyzwolenie ręcznego przejścia w tryb failover dla konta usługi Azure Cosmos DB. Każda inna zmiana priorytetu nie spowoduje wyzwolenia trybu failover.
Uwaga
Jeśli wykonasz ręczną operację trybu failover, gdy operacja skalowania przepływności asynchronicznej jest w toku, operacja skalowania przepływności zostanie wstrzymana. Zostanie ona wznowiona automatycznie po zakończeniu operacji trybu failover.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$locations = @("East US", "West US") # Regions ordered by UPDATED failover priority
Update-AzCosmosDBAccountFailoverPriority `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-FailoverPolicy $locations
Wyświetlanie listy blokad zasobów na koncie usługi Azure Cosmos DB
Blokady zasobów można umieszczać w zasobach usługi Azure Cosmos DB, w tym w bazach danych i kolekcjach. W poniższym przykładzie pokazano, jak wyświetlić listę wszystkich blokad zasobów platformy Azure na koncie usługi Azure Cosmos DB.
$resourceGroupName = "myResourceGroup"
$resourceTypeAccount = "Microsoft.DocumentDB/databaseAccounts"
$accountName = "mycosmosaccount"
Get-AzResourceLock `
-ResourceGroupName $resourceGroupName `
-ResourceType $resourceTypeAccount `
-ResourceName $accountName
Baza danych usługi Azure Cosmos DB
W poniższych sekcjach pokazano, jak zarządzać bazą danych usługi Azure Cosmos DB, w tym:
- Tworzenie bazy danych usługi Azure Cosmos DB
- Tworzenie bazy danych usługi Azure Cosmos DB z udostępnioną przepływnością
- Uzyskiwanie przepływności bazy danych usługi Azure Cosmos DB
- Migrowanie przepływności bazy danych do automatycznego skalowania
- Wyświetlanie listy wszystkich baz danych usługi Azure Cosmos DB na koncie
- Uzyskiwanie pojedynczej bazy danych usługi Azure Cosmos DB
- Usuwanie bazy danych usługi Azure Cosmos DB
- Tworzenie blokady zasobów w bazie danych usługi Azure Cosmos DB, aby zapobiec usunięciu
- Usuwanie blokady zasobów w bazie danych usługi Azure Cosmos DB
Tworzenie bazy danych usługi Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
New-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName
Tworzenie bazy danych usługi Azure Cosmos DB z udostępnioną przepływnością
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$databaseRUs = 400
New-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName `
-Throughput $databaseRUs
Uzyskiwanie przepływności bazy danych usługi Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Get-AzCosmosDBSqlDatabaseThroughput `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName
Migrowanie przepływności bazy danych do automatycznego skalowania
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Invoke-AzCosmosDBSqlDatabaseThroughputMigration `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName `
-ThroughputType Autoscale
Pobieranie wszystkich baz danych usługi Azure Cosmos DB na koncie
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
Get-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName
Uzyskiwanie pojedynczej bazy danych usługi Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Get-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName
Usuwanie bazy danych usługi Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Remove-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName
Tworzenie blokady zasobów w bazie danych usługi Azure Cosmos DB, aby zapobiec usunięciu
$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
Usuwanie blokady zasobów w bazie danych usługi 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
Kontener usługi Azure Cosmos DB
W poniższych sekcjach pokazano, jak zarządzać kontenerem usługi Azure Cosmos DB, w tym:
- Tworzenie kontenera usługi Azure Cosmos DB
- Tworzenie kontenera usługi Azure Cosmos DB z autoskalowaniem
- Tworzenie kontenera usługi Azure Cosmos DB z dużym kluczem partycji
- Uzyskiwanie przepływności kontenera usługi Azure Cosmos DB
- Migrowanie przepływności kontenera do automatycznego skalowania
- Tworzenie kontenera usługi Azure Cosmos DB z indeksowaniem niestandardowym
- Tworzenie kontenera usługi Azure Cosmos DB z wyłączonym indeksowaniem
- Tworzenie kontenera usługi Azure Cosmos DB z unikatowym kluczem i TTL
- Tworzenie kontenera usługi Azure Cosmos DB z rozwiązaniem konfliktów
- Wyświetlanie listy wszystkich kontenerów usługi Azure Cosmos DB w bazie danych
- Pobieranie pojedynczego kontenera usługi Azure Cosmos DB w bazie danych
- Usuwanie kontenera usługi Azure Cosmos DB
- Tworzenie blokady zasobów w kontenerze usługi Azure Cosmos DB, aby zapobiec usunięciu
- Usuwanie blokady zasobów w kontenerze usługi Azure Cosmos DB
Tworzenie kontenera usługi 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
Tworzenie kontenera usługi Azure Cosmos DB z autoskalowaniem
# 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
Tworzenie kontenera usługi Azure Cosmos DB o dużym rozmiarze klucza partycji
# 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
Uzyskiwanie przepływności kontenera usługi Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
Get-AzCosmosDBSqlContainerThroughput `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName
Migrowanie przepływności kontenera do automatycznego skalowania
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
Invoke-AzCosmosDBSqlContainerThroughputMigration `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName `
-ThroughputType Autoscale
Tworzenie kontenera usługi Azure Cosmos DB z niestandardowymi zasadami indeksu
# 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
Tworzenie kontenera usługi Azure Cosmos DB z wyłączonym indeksowaniem
# 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
Tworzenie kontenera usługi Azure Cosmos DB przy użyciu unikatowych zasad klucza i czasu wygaśnięcia
# 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
Tworzenie kontenera usługi Azure Cosmos DB z rozwiązaniem konfliktów
Aby zapisać wszystkie konflikty w pliku ConflictsFeed i obsługiwać je oddzielnie, przekaż polecenie -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
Aby utworzyć zasady rozwiązywania konfliktów, aby użyć procedury składowanej, wywołaj New-AzCosmosDBSqlConflictResolutionPolicy
i przekaż parametry -Type
oraz -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
Wyświetlanie listy wszystkich kontenerów usługi Azure Cosmos DB w bazie danych
# List all Azure Cosmos DB containers in a database
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Get-AzCosmosDBSqlContainer `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName
Pobieranie pojedynczego kontenera usługi Azure Cosmos DB w bazie danych
# 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
Usuwanie kontenera usługi 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
Tworzenie blokady zasobów w kontenerze usługi Azure Cosmos DB, aby zapobiec usunięciu
$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
Usuwanie blokady zasobów w kontenerze usługi 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