Erstellen Sie mit der Azure CLI eine Ressourcensperre für die Azure Cosmos DB-API für MongoDB.
GILT FÜR: MongoDB
Das Skript in diesem Artikel veranschaulicht das Ausführen von Ressourcensperrvorgängen für eine API für MongoDB-Datenbank und -Sammlung.
Wichtig
Zum Erstellen von Ressourcensperren müssen Sie Mitglied der Rolle „Besitzer“ im Abonnement sein.
Ressourcensperren funktionieren nicht bei Änderungen, die von Benutzern vorgenommen werden, die eine Verbindung über ein MongoDB SDK, die Mongo-Shell, Tools oder das Azure-Portal herstellen, es sei denn, das Azure Cosmos DB-Konto wird zuvor bei aktivierter disableKeyBasedMetadataWriteAccess
-Eigenschaft gesperrt. Weitere Informationen zum Aktivieren dieser Eigenschaft finden Sie unter Verhindern von Änderungen im Cosmos SDK.
Wenn Sie kein Azure-Abonnement haben, erstellen Sie ein kostenloses Azure-Konto, bevor Sie beginnen.
Voraussetzungen
Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter Schnellstart für Bash in Azure Cloud Shell.
Wenn Sie CLI-Referenzbefehle lieber lokal ausführen, installieren Sie die Azure CLI. Wenn Sie Windows oder macOS ausführen, sollten Sie die Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container.
Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei der Azure CLI an. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Informationen zu anderen Anmeldeoptionen finden Sie unter Anmelden mit der Azure CLI.
Installieren Sie die Azure CLI-Erweiterung beim ersten Einsatz, wenn Sie dazu aufgefordert werden. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden von Erweiterungen mit der Azure CLI.
Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um das Upgrade auf die aktuelle Version durchzuführen.
- Für diesen Artikel ist mindestens Version 2.30 erforderlich. Führen Sie
az --version
aus, um die Version zu ermitteln. Informationen zum Durchführen einer Installation oder eines Upgrades finden Sie bei Bedarf unter Installieren der Azure CLI. Bei Verwendung von Azure Cloud Shell ist die aktuelle Version bereits installiert.
Beispielskript
Starten von Azure Cloud Shell
Azure Cloud Shell ist eine kostenlose interaktive Shell, mit der Sie die Schritte in diesem Artikel durchführen können. Sie verfügt über allgemeine vorinstallierte Tools und ist für die Verwendung mit Ihrem Konto konfiguriert.
Wählen Sie zum Öffnen von Cloud Shell oben rechts in einem Codeblock einfach die Option Ausprobieren. Sie können Cloud Shell auch auf einem separaten Browsertab starten, indem Sie zu https://shell.azure.com navigieren.
Überprüfen Sie nach dem Öffnen von Cloud Shell, ob Bash für Ihre Umgebung ausgewählt ist. In den folgenden Sitzungen wird die Azure CLI in einer Bash-Umgebung verwendet. Wählen Sie Kopieren aus, um die Codeblöcke zu kopieren. Fügen Sie sie in Cloud Shell ein, und drücken Sie die EINGABETASTE, um sie auszuführen.
Anmelden bei Azure
Cloud Shell wird automatisch unter dem Konto authentifiziert, mit dem die Anmeldung anfänglich erfolgt ist. Verwenden Sie das folgende Skript, um sich mit einem anderen Abonnement anzumelden, und ersetzen Sie <Subscription ID>
durch Ihre Azure-Abonnement-ID. Wenn Sie kein Azure-Abonnement haben, erstellen Sie ein kostenloses Azure-Konto, bevor Sie beginnen.
subscription="<subscriptionId>" # add subscription here
az account set -s $subscription # ...or use 'az login'
Weitere Informationen finden Sie unter Festlegen der aktiven Subscription oder unter Interaktives Anmelden
Ausführen des Skripts
# Resource lock operations for a MongoDB API database and collection
# Subscription owner permissions required for this script
# Run this script after running
# "https://docs.microsoft.com/azure/cosmos-db/scripts/cli/mongodb/create#sample-script"
# Variable block
# Use values from prerequisite script or from your environment
# resourceGroup="your resource group name"
# account="your account name"
# database="your database name"
# collection="your collection name"
lockType='CanNotDelete' # CanNotDelete or ReadOnly
databaseParent="databaseAccounts/$account"
collectionParent="databaseAccounts/$account/mongodbDatabases/$database"
databaseLock="$database-Lock"
collectionLock="$collection-Lock"
# Create a delete lock on database
echo "Creating $lockType lock on $database"
az lock create --name $databaseLock \
--resource-group $resourceGroup \
--resource-type Microsoft.DocumentDB/mongodbDatabases --lock-type $lockType --parent $databaseParent --resource $database
# Create a delete lock on collection
echo "Creating $lockType lock on $collection"
az lock create --name $collectionLock --resource-group $resourceGroup --resource-type Microsoft.DocumentDB/collections --lock-type $lockType --parent $collectionParent --resource $collection
# List all locks on a Cosmos account
echo "Listing locks on $account"
az lock list --resource-group $resourceGroup --resource-name $account --namespace Microsoft.DocumentDB --resource-type databaseAccounts
# Delete lock on database
echo "Deleting $databaseLock on $database"
lockid=$(az lock show --name $databaseLock --resource-group $resourceGroup --resource-type Microsoft.DocumentDB/mongodbDatabases --resource $database --parent $databaseParent --output tsv --query id)
az lock delete --ids $lockid
# Delete lock on collection
echo "Deleting $collectionLock on $collection"
lockid=$(az lock show --name $collectionLock --resource-group $resourceGroup --resource-type Microsoft.DocumentDB/collections --resource-name $collection --parent $collectionParent --output tsv --query id)
az lock delete --ids $lockid
Bereinigen von Ressourcen
Verwenden Sie den folgenden Befehl, um die Ressourcengruppe und alle zugehörigen Ressourcen mit dem Befehl az group delete zu entfernen, es sei denn, Sie benötigen diese Ressourcen weiterhin. Bei einigen dieser Ressourcen kann das Erstellen wie auch das Löschen eine Weile dauern.
az group delete --name $resourceGroup
Beispielreferenz
Das Skript verwendet die folgenden Befehle. Jeder Befehl in der Tabelle ist mit der zugehörigen Dokumentation verknüpft.
Get-Help | Notizen |
---|---|
az lock create | Erstellt eine Sperre. |
az lock list | Listet Sperrinformationen auf. |
az lock show | Zeigt Eigenschaften einer Sperre an. |
az lock delete | Löscht eine Sperre. |