Alıştırma - Ortam değişkenlerini ayarlama

Tamamlandı

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

  1. 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
    
  2. 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 adresi COSMOS_DB_ENDPOINT Bash değişkenine kaydeder.

  3. Komutunu çalıştırarak az cosmosdb keys list Azure Cosmos DB bağlantı anahtarını alın ve adlı COSMOS_DB_MASTERKEYbir 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.

  1. 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.

  2. 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
    
  3. 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:

    Screenshot that shows the Azure voting application with two choices in a browser. Cats and Dogs.

    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.

  1. 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": "Xm5BwdLlCllBvrR26V00000000S2uOusuglhzwkE7dOPMBQ3oA30n3rKd8PKA13700000000095ynys863Ghgw=="
      }
    ]
    

    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.

  2. 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.

  3. 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.