共用方式為


使用 Azure CLI 對 Azure Cosmos DB for Table 資料表執行資源鎖定作業

適用於: 桌子

本文中的腳本示範如何針對數據表數據表的 API 執行資源鎖定作業。

重要

若要啟用資源鎖定,Azure Cosmos DB 帳戶必須已啟用 disableKeyBasedMetadataWriteAccess 屬性。 此屬性可防止透過帳戶金鑰所連線用戶端的任何資源變更,例如 Azure Cosmos DB Table SDK、Azure 儲存體 Table SDK 或 Azure 入口網站。 如需詳細資訊,請參閱防止 SDK 的變更

必要條件

  • 您需要建立的 Azure Cosmos DB for Table 帳戶、資料庫和資料表。 如果您沒有 Azure 訂用帳戶,請在開始之前先建立 Azure 免費帳戶

    重要

    若要建立或刪除資源鎖定,您必須擁有 Azure 訂用帳戶中的「擁有者」角色。

  • 此指令碼需要 Azure CLI 2.12.1 版或更新版本。

    • 您可以在 Azure Cloud Shell 的 Bash 環境中執行指令碼。 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,則請考慮在 Docker 容器中執行 Azure CLI

      如果您使用本機安裝,則請執行 az login 並遵循提示來登入 Azure。 如需其他登入選項,請參閱使用 Azure CLI 登入

範例指令碼

下列指令碼會使用 Azure CLI az lock 命令操作 Azure Cosmos DB for Table 資料表上的資源鎖定。 此指令碼需要 resourceGroupaccount 名稱,以及您所建立 Azure Cosmos DB 帳戶和資料表的 table 名稱。

  • az lock create 會在資料表上建立 CanNotDelete 資源鎖定。
  • az lock list 會列出 Azure Cosmos DB Table 帳戶的所有鎖定資訊。
  • 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

下一步