Używanie interfejsu wiersza polecenia platformy Azure na potrzeby operacji blokowania zasobów w usłudze Azure Cosmos DB dla tabel
DOTYCZY: Stół
Skrypt w tym artykule przedstawia wykonywanie operacji blokowania zasobów dla interfejsu API dla tabeli tabel.
Ważne
Aby włączyć blokowanie zasobów, konto usługi Azure Cosmos DB musi mieć włączoną disableKeyBasedMetadataWriteAccess
właściwość . Ta właściwość zapobiega wszelkim zmianom zasobów od klientów łączących się za pośrednictwem kluczy konta, takich jak zestaw SDK tabel usługi Azure Cosmos DB, zestaw SDK tabel usługi Azure Storage lub witryna Azure Portal.
Wymagania wstępne
Potrzebujesz usługi Azure Cosmos DB dla konta tabel, bazy danych i tabeli utworzonej. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.
Ważne
Aby utworzyć lub usunąć blokady zasobów, musisz mieć rolę Właściciel w subskrypcji platformy Azure.
Ten skrypt wymaga interfejsu wiersza polecenia platformy Azure w wersji 2.12.1 lub nowszej.
Skrypt można uruchomić w środowisku powłoki Bash w usłudze Azure Cloud Shell. Po otwarciu usługi Cloud Shell upewnij się, że powłoka Bash jest wyświetlana w polu środowiska w lewym górnym rogu okna powłoki. Usługa Cloud Shell zawsze ma najnowszą wersję interfejsu wiersza polecenia platformy Azure.
Usługa Cloud Shell jest automatycznie uwierzytelniana na koncie użytym do zalogowania się w witrynie Azure Portal. Możesz użyć polecenia az account set , aby zalogować się przy użyciu innej subskrypcji, zastępując
<subscriptionId>
element identyfikatorem subskrypcji platformy Azure.subscription="<subscriptionId>" # add subscription here az account set -s $subscription # ...or use 'az login'
Jeśli wolisz, możesz zainstalować interfejs wiersza polecenia platformy Azure, aby uruchomić skrypt lokalnie. Uruchom polecenie az version , aby znaleźć zainstalowaną wersję interfejsu wiersza polecenia platformy Azure i biblioteki zależne, a następnie uruchom polecenie az upgrade , jeśli chcesz uaktualnić. Jeśli zostanie wyświetlony monit, zainstaluj rozszerzenia interfejsu wiersza polecenia platformy Azure. Jeśli korzystasz z systemu Windows lub macOS, rozważ uruchomienie interfejsu wiersza polecenia platformy Azure w kontenerze platformy Docker.
Jeśli używasz instalacji lokalnej, zaloguj się do platformy Azure, uruchamiając polecenie az login i postępując zgodnie z monitami. Aby uzyskać inne opcje logowania, zobacz Logowanie się przy użyciu interfejsu wiersza polecenia platformy Azure.
Przykładowy skrypt
Poniższy skrypt używa poleceń az lock interfejsu wiersza polecenia platformy Azure do manipulowania blokadami zasobów w tabeli usługi Azure Cosmos DB dla tabel. Skrypt wymaga nazwy resourceGroup
account
i table
nazwy utworzonego konta i tabeli usługi Azure Cosmos DB.
- az lock create tworzy blokadę
CanNotDelete
zasobu w tabeli. - polecenie az lock list wyświetla wszystkie informacje o blokadzie konta tabeli usługi Azure Cosmos DB.
- polecenie az lock delete używa polecenia az lock show , aby uzyskać
id
blokadę w tabeli, a następnie używalockid
właściwości do usunięcia blokady.
# Resource lock operations for a Table API table
# Subscription owner permissions required for this script
# Run this script after running
# "https://docs.microsoft.com/azure/cosmos-db/scripts/cli/table/create#sample-script"
# Variable block
# Use values from prerequisite script or from your environment
# resourceGroup="your resource group name"
# account="your account name"
# table="your table name"
lockType='CanNotDelete' # CanNotDelete or ReadOnly
tableParent="databaseAccounts/$account"
tableResourceType="Microsoft.DocumentDB/tables"
tableLock='$table-Lock'
# Create a delete lock on table
echo "Creating $lockType lock on $table"
az lock create --name $tableLock --resource-group $resourceGroup --resource-type $tableResourceType --lock-type $lockType --parent $tableParent --resource $table
# 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 table
echo "Deleting $tableLock on $table"
lockid=$(az lock show --name $tableLock --resource-group $resourceGroup --resource-type $tableResourceType --resource $table --parent $tableParent --output tsv --query id)
az lock delete --ids $lockid
Czyszczenie zasobów
Jeśli nie potrzebujesz już utworzonych zasobów, użyj polecenia az group delete , aby usunąć grupę zasobów i wszystkie zawarte w niej zasoby. Te zasoby obejmują konto i tabelę usługi Azure Cosmos DB. Usunięcie zasobów może zająć trochę czasu.
az group delete --name $resourceGroup
Następne kroki
- Zapobieganie usuwaniu lub zmienianiu zasobów usługi Azure Cosmos DB
- Blokowanie zasobów w celu uniemożliwienia nieoczekiwanych zmian
- Jak przeprowadzać inspekcję operacji płaszczyzny sterowania usługi Azure Cosmos DB
- Dokumentacja interfejsu wiersza polecenia usługi Azure Cosmos DB
- Repozytorium GitHub interfejsu wiersza polecenia usługi Azure Cosmos DB