Tablo tabloları için Azure Cosmos DB'de kaynak kilitleme işlemleri için Azure CLI kullanma
ŞUNLAR IÇIN GEÇERLIDIR: Masa
Bu makaledeki betik, Tablo tablosu için BIR API için kaynak kilitleme işlemleri gerçekleştirmeyi gösterir.
Önemli
Kaynak kilitlemeyi etkinleştirmek için Azure Cosmos DB hesabında özelliğin etkinleştirilmesi disableKeyBasedMetadataWriteAccess
gerekir. Bu özellik, Azure Cosmos DB Tablo SDK'sı, Azure Depolama Tablo SDK'sı veya Azure portalı gibi hesap anahtarları aracılığıyla bağlanan istemcilerden gelen kaynaklarda değişiklik yapılmasını engeller.
Önkoşullar
Tablo hesabı, veritabanı ve tablo için bir Azure Cosmos DB oluşturmanız gerekir. Azure aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı oluşturun.
Önemli
Kaynak kilitlerini oluşturmak veya silmek için Azure aboneliğinizde Sahip rolüne sahip olmanız gerekir.
Bu betik, Azure CLI 2.12.1 veya sonraki bir sürümü gerektirir.
Betiği Azure Cloud Shell'deki Bash ortamında çalıştırabilirsiniz. Cloud Shell açıldığında, kabuk penceresinin sol üst kısmındaki ortam alanında Bash'in göründüğünden emin olun. Cloud Shell her zaman Azure CLI'nin en son sürümüne sahiptir.
Cloud Shell'in kimliği, Azure portalında oturum açmak için kullandığınız hesap altında otomatik olarak doğrulanır. farklı bir abonelikle oturum açmak için az account set komutunu kullanabilir, yerine
<subscriptionId>
Azure abonelik kimliğinizi kullanabilirsiniz.subscription="<subscriptionId>" # add subscription here az account set -s $subscription # ...or use 'az login'
İsterseniz, betiği yerel olarak çalıştırmak için Azure CLI'yı yükleyebilirsiniz. Yüklü Azure CLI sürümünü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın ve yükseltmeniz gerekirse az upgrade komutunu çalıştırın. İstenirse Azure CLI uzantılarını yükleyin. Windows veya macOS çalıştırıyorsanız Azure CLI'yi bir Docker kapsayıcısında çalıştırmayı göz önünde bulundurun.
Yerel yükleme kullanıyorsanız az login komutunu çalıştırarak ve istemleri izleyerek Azure'da oturum açın. Diğer oturum açma seçenekleri için bkz . Azure CLI ile oturum açma.
Örnek betik
Aşağıdaki betik, Tablo için Azure Cosmos DB tablonuzda kaynak kilitlerini işlemek için Azure CLI az lock komutlarını kullanır. Betik, oluşturduğunuz Azure Cosmos DB hesabı ve table
tablosu için , account
adı ve adı gerekirresourceGroup
.
- az lock create , tabloda bir
CanNotDelete
kaynak kilidi oluşturur. - az lock list, Azure Cosmos DB Tablo hesabınızın tüm kilit bilgilerini listeler.
- az lock delete, tablonuzdaki kilidi almak
id
için az lock show komutunu kullanır ve ardından kilidi silmek için özelliğini kullanırlockid
.
# 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
Kaynakları temizleme
Oluşturduğunuz kaynaklara artık ihtiyacınız yoksa az group delete komutunu kullanarak kaynak grubunu ve içerdiği tüm kaynakları silin. Bu kaynaklar Azure Cosmos DB hesabını ve tablosunu içerir. Kaynakların silinmesi biraz zaman alabilir.
az group delete --name $resourceGroup