Использование Azure CLI для операций блокировки ресурсов в Azure Cosmos DB для таблиц
Область применения: Таблица
Сценарий в этой статье демонстрирует выполнение операций блокировки ресурсов для ТАБЛИЦЫ API.
Внимание
Чтобы включить блокировку ресурсов, учетная запись Azure Cosmos DB должна иметь включенное disableKeyBasedMetadataWriteAccess
свойство. Это свойство предотвращает любые изменения ресурсов от клиентов, которые подключаются с помощью ключей учетных записей, таких как пакет SDK для таблиц Azure Cosmos DB, пакет SDK для таблиц служба хранилища Azure или портал Azure.
Необходимые компоненты
Вам потребуется Azure Cosmos DB для учетной записи таблицы, базы данных и таблицы. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.
Внимание
Чтобы создать или удалить блокировки ресурсов, необходимо иметь роль владельца в подписке Azure.
Для этого скрипта требуется Azure CLI 2.12.1 или более поздней версии.
Скрипт можно запустить в среде Bash в Azure Cloud Shell. Когда Cloud Shell откроется, убедитесь, что в поле среды в левом верхнем углу окна оболочки отображается Bash. Cloud Shell всегда содержит последнюю версию Azure CLI.
Cloud Shell автоматически проходит аутентификацию под учетной записью, с помощью которой вы выполнили вход на портале Azure. Вы можете использовать az account set для входа в другую подписку, заменив
<subscriptionId>
идентификатором подписки Azure.subscription="<subscriptionId>" # add subscription here az account set -s $subscription # ...or use 'az login'
При желании вы можете установить Azure CLI для локального запуска скрипта. Выполните команду az version, чтобы узнать вашу версию Azure CLI и установленные зависимые библиотеки, а затем выполните команду az upgrade, если требуется выполнить обновление. При появлении запроса установите расширения Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker.
Если вы используете локальную установку, войдите в Azure, выполнив команду az login и следуя подсказкам на экране. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.
Пример скрипта
Следующий скрипт использует команды Azure CLI az lock для управления блокировками ресурсов в таблице Таблиц Azure Cosmos DB. Для скрипта требуется resourceGroup
, имя account
и имя table
созданной учетной записи Azure Cosmos DB.
- az lock create создает блокировку ресурса
CanNotDelete
для таблицы. - az lock list выводит список всех сведений о блокировке для учетной записи таблицы Azure Cosmos DB.
- az lock delete использует az lock show для получения
id
блокировки в таблице, а затем использует свойствоlockid
для удаления блокировки.
# 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
Очистка ресурсов
Если вам больше не нужны созданные вами ресурсы, используйте команду az group delete, чтобы удалить группу ресурсов и все содержащиеся в ней ресурсы, включая учетную запись и пространство ключей Azure Cosmos DB. Удаление ресурсов может занять некоторое время.
az group delete --name $resourceGroup