Een resourcevergrendeling maken voor Azure Cosmos DB for NoSQL-database en -container met behulp van Azure PowerShell
VAN TOEPASSING OP: NoSQL
Notitie
Het wordt aanbevolen de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.
Voor dit voorbeeld is Azure PowerShell Az 5.4.0 of hoger vereist. Voer Get-Module -ListAvailable Az
uit om te zien welke versies zijn geïnstalleerd.
Als u PowerShell moet installeren, raadpleegt u De Azure PowerShell-module installeren.
Voer Connect-AzAccount uit om u aan te melden bij Azure.
Belangrijk
Resourcevergrendelingen werken niet voor wijzigingen die zijn aangebracht door gebruikers die verbinding maken met behulp van een Azure Cosmos DB SDK, hulpprogramma's die verbinding maken via accountsleutels of Azure Portal, tenzij het Azure Cosmos DB-account voor het eerst is vergrendeld met de disableKeyBasedMetadataWriteAccess
eigenschap ingeschakeld. Zie Wijzigingen aan SDK's voorkomen voor meer informatie over het inschakelen van deze eigenschap.
Voorbeeldscript
# References:
# Az.CosmosDB | https://docs.microsoft.com/powershell/module/az.cosmosdb
# Az.Resources | https://docs.microsoft.com/powershell/module/az.resources
# --------------------------------------------------
# Purpose
#
# --------------------------------------------------
# Variables
# ***** SUBSTITUTE YOUR VALUES *****
$resourceGroupName = "myResourceGroup"
$accountName = "myaccount"
$databaseName = "myDatabase"
$collectionName = "myContainer"
# *****
$apiVersion = "2020-04-01" # Cosmos DB RP API version
$lockLevel = "CanNotDelete" # CanNotDelete or ReadOnly
$resourceTypeAccount = "Microsoft.DocumentDB/databaseAccounts"
$resourceTypeDatabase = "$resourceTypeAccount/sqlDatabases"
$resourceTypeCollection = "$resourceTypeDatabase/containers"
$resourceNameDatabase = "$accountName/$databaseName"
$lockNameDatabase = "$accountName-$databaseName-Lock"
$resourceNameCollection = "$accountName/$databaseName/$collectionName"
$lockNameCollection = "$accountName-$databaseName-$collectionName-Lock"
# --------------------------------------------------
Write-Host "Create a $lockLevel lock on resource $resourceNameDatabase"
New-AzResourceLock `
-ApiVersion $apiVersion `
-ResourceGroupName $resourceGroupName `
-ResourceType $resourceTypeDatabase `
-ResourceName $resourceNameDatabase `
-LockName $lockNameDatabase `
-LockLevel $lockLevel `
-Force
Write-Host "Create a $lockLevel lock on resource $resourceNameCollection"
New-AzResourceLock `
-ApiVersion $apiVersion `
-ResourceGroupName $resourceGroupName `
-ResourceType $resourceTypeCollection `
-ResourceName $resourceNameCollection `
-LockName $lockNameCollection `
-LockLevel $lockLevel `
-Force
Write-Host "List all locks on Cosmos DB account $accountName to confirm lock creation"
Get-AzResourceLock `
-ApiVersion $apiVersion `
-ResourceGroupName $resourceGroupName `
-ResourceType $resourceTypeAccount `
-ResourceName $accountName
Write-Host "Delete lock on resource $resourceNameDatabase"
Remove-AzResourceLock `
-ApiVersion $apiVersion `
-ResourceGroupName $resourceGroupName `
-ResourceType $resourceTypeDatabase `
-ResourceName $resourceNameDatabase `
-LockName $lockNameDatabase `
-Force
Write-Host "Delete lock on resource $resourceNameCollection"
Remove-AzResourceLock `
-ApiVersion $apiVersion `
-ResourceGroupName $resourceGroupName `
-ResourceType $resourceTypeCollection `
-ResourceName $resourceNameCollection `
-LockName $lockNameCollection `
-Force
Write-Host "List all locks on Cosmos DB account $accountName to confirm lock removal"
Get-AzResourceLock `
-ApiVersion $apiVersion `
-ResourceGroupName $resourceGroupName `
-ResourceType $resourceTypeAccount `
-ResourceName $accountName
Opschonen van implementatie
Na het uitvoeren van het voorbeeldscript kan de volgende opdracht worden gebruikt om de resourcegroep en alle resources die er aan zijn gekoppeld te verwijderen.
Remove-AzResourceGroup -ResourceGroupName "myResourceGroup"
Uitleg van het script
In dit script worden de volgende opdrachten gebruikt. Elke opdracht in de tabel is een koppeling naar specifieke documentatie over de opdracht.
Opdracht | Opmerkingen |
---|---|
Azure-resource | |
New-AzResourceLock | Hiermee maakt u een resourcevergrendeling. |
Get-AzResourceLock | Hiermee wordt een resourcevergrendeling opgehaald of worden resourcevergrendelingen weergegeven. |
Remove-AzResourceLock | Hiermee wordt een resourcevergrendeling verwijderd. |
Volgende stappen
Zie Documentatie over Azure PowerShell voor meer informatie over Azure PowerShell.