Alıştırma - Ortam değişkenlerini ayarlama
Ortam değişkenleri, kapsayıcının çalıştırılan uygulamayı veya betiği dinamik olarak yapılandırmanıza olanak tanır. Kapsayıcıyı oluştururken değişkenleri ayarlamak için Azure CLI, PowerShell veya Azure portalı kullanabilirsiniz. Güvenli ortam değişkenleri, hassas bilgilerin kapsayıcının çıkışında görüntülenmesini engeller.
Bir Azure Cosmos DB örneği oluşturun ve bağlantı bilgilerini bir Azure kapsayıcı örneğine geçirmek için ortam değişkenlerini kullanın. Kapsayıcıdaki bir uygulama, Azure Cosmos DB’ye veri yazmak ve buradan veri okumak için değişkenleri kullanır. Aralarındaki farkı görebilmeniz için hem ortam değişkeni hem de güvenli bir ortam değişkeni oluşturun.
Azure Cosmos DB dağıtma
Azure Cosmos DB’yi dağıtırken benzersiz bir veritabanı adı sağlarsınız. Öğrenme amacıyla Cloud Shell'de şu komutu çalıştırarak benzersiz bir ad içeren bir Bash değişkeni oluşturun:
COSMOS_DB_NAME=aci-cosmos-db-$RANDOM
Azure Cosmos DB örneğinizi oluşturmak için şu
az cosmosdb create
komutu çalıştırın:COSMOS_DB_ENDPOINT=$(az cosmosdb create \ --resource-group learn-deploy-aci-rg \ --name $COSMOS_DB_NAME \ --query documentEndpoint \ --output tsv)
Bu komutun tamamlanması birkaç dakika sürebilir.
$COSMOS_DB_NAME
, benzersiz veritabanı adınızı belirtir. Komut, veritabanınız için uç nokta adresini yazdırır. Burada, komut bu adresiCOSMOS_DB_ENDPOINT
Bash değişkenine kaydeder.Komutunu çalıştırarak
az cosmosdb keys list
Azure Cosmos DB bağlantı anahtarını alın ve adlıCOSMOS_DB_MASTERKEY
bir Bash değişkeninde depolayın:COSMOS_DB_MASTERKEY=$(az cosmosdb keys list \ --resource-group learn-deploy-aci-rg \ --name $COSMOS_DB_NAME \ --query primaryMasterKey \ --output tsv)
Veritabanınızla çalışan bir kapsayıcıyı dağıtma
Kayıtları okuyabilen ve Azure Cosmos DB örneğine yazabilen bir Azure kapsayıcı örneği oluşturun.
Son bölümde oluşturduğunuz COSMOS_DB_ENDPOINT
ve COSMOS_DB_MASTERKEY
adlı iki ortam değişkeni Azure Cosmos DB örneğine bağlanmak için ihtiyacınız olan değerleri barındırır.
Kapsayıcıyı oluşturmak için aşağıdaki
az container create
komutu çalıştırın:az container create \ --resource-group learn-deploy-aci-rg \ --name aci-demo \ --image mcr.microsoft.com/azuredocs/azure-vote-front:cosmosdb \ --ip-address Public \ --location eastus \ --environment-variables \ COSMOS_DB_ENDPOINT=$COSMOS_DB_ENDPOINT \ COSMOS_DB_MASTERKEY=$COSMOS_DB_MASTERKEY
azuredocs/azure-vote-front:cosmosdb , kurgusal oylama uygulaması çalıştıran bir kapsayıcı görüntüsünü ifade eder.
--environment-variables
bağımsız değişkenini not edin. Bu bağımsız değişken, kapsayıcı başlatıldığında kapsayıcıya geçirilen ortam değişkenlerini belirtir. Kapsayıcı görüntüsü bu ortam değişkenlerini aramak için yapılandırılmıştır. Azure Cosmos DB uç noktasının adını ve bağlantı anahtarını geçirin.az container show
Kapsayıcınızın genel IP adresini almak için komutunu çalıştırın:az container show \ --resource-group learn-deploy-aci-rg \ --name aci-demo \ --query ipAddress.ip \ --output tsv
Tarayıcıda kapsayıcınızın IP adresine gidin.
Önemli
Kapsayıcıların tam olarak başlatılması ve bağlantıların alınması bazen bir veya iki dakika sürer. Tarayıcınızda IP adresine gittiğinizde yanıt yoksa, birkaç dakika bekleyin ve sayfayı yenileyin.
Uygulama kullanıma sunulduktan sonra şu sayfayı alırsınız:
Kediler veya köpekler için oy vermeyi deneyin. Her oy Azure Cosmos DB örneğinizde depolanır.
Bağlantı bilgilerini gizlemek için güvenli ortam değişkenlerini kullanma
Önceki bölümde kapsayıcınızı oluşturmak için iki ortam değişkeni kullandınız. Varsayılan olarak, bu ortam değişkenlerine Azure portalından ve düz metin olarak komut satırı araçlarından erişilir.
Bu bölümde, bağlantı anahtarları gibi hassas bilgilerin düz metin olarak görüntülenmesini nasıl önleyeceğinizi öğrenin.
Başlangıç olarak geçerli davranışın nasıl çalıştığına bakalım. Kapsayıcınızın ortam değişkenlerini görüntülemek için aşağıdaki
az container show
komutu çalıştırın:az container show \ --resource-group learn-deploy-aci-rg \ --name aci-demo \ --query containers[0].environmentVariables
Her iki değeri de düz metin olarak içeren bir çıkış elde edersiniz. Bir örnek aşağıda verilmiştir:
[ { "name": "COSMOS_DB_ENDPOINT", "secureValue": null, "value": "https://aci-cosmos.documents.azure.com:443/" }, { "name": "COSMOS_DB_MASTERKEY", "secureValue": null, "value": "abcdefghijklmnopqrztuvwxyz0123456789==" } ]
Bu değerler oylama uygulaması aracılığıyla kullanıcılarınıza gösterilmese de, hassas bilgilerin (bağlantı anahtarları gibi) düz metinde depolanmadığından emin olmak iyi bir güvenlik uygulamasıdır.
Güvenli ortam değişkenleri, açık metin çıkışını engeller. Güvenli ortam değişkenlerini kullanmak için bağımsız değişken yerine bağımsız değişkenini
--environment-variables
kullanın--secure-environment-variables
.Aşağıdaki komutu çalıştırarak güvenli ortam değişkenlerini kullanan aci-demo-secure adlı ikinci bir kapsayıcı oluşturun:
az container create \ --resource-group learn-deploy-aci-rg \ --name aci-demo-secure \ --image mcr.microsoft.com/azuredocs/azure-vote-front:cosmosdb \ --ip-address Public \ --location eastus \ --secure-environment-variables \ COSMOS_DB_ENDPOINT=$COSMOS_DB_ENDPOINT \ COSMOS_DB_MASTERKEY=$COSMOS_DB_MASTERKEY
--secure-environment-variables
bağımsız değişkeninin kullanıldığına dikkat edin.Kapsayıcınızın ortam değişkenlerini görüntülemek için aşağıdaki
az container show
komutu çalıştırın:az container show \ --resource-group learn-deploy-aci-rg \ --name aci-demo-secure \ --query containers[0].environmentVariables
Bu kez ortam değişkenlerinizin düz metinde görünmediğini görebilirsiniz:
[ { "name": "COSMOS_DB_ENDPOINT", "secureValue": null, "value": null }, { "name": "COSMOS_DB_MASTERKEY", "secureValue": null, "value": null } ]
Aslında, ortam değişkenlerinizin değerleri hiç görünmez. Bu değerler hassas bilgilere başvurduğundan, görüntülenmemesi sorun yaratmaz. Burada, ortam değişkenlerinin var olduğunu bilmeniz yeterlidir.