Hızlı Başlangıç: ARM şablonu Azure Uygulama Yapılandırması depolama hesabı oluşturma

Bu hızlı başlangıçta şunların nasıl olduğu açık almaktadır:

  • Uygulama Yapılandırma mağazası dağıtmak için Azure Resource Manager (ARM şablonu) kullanın.
  • ARM şablonunu kullanarak bir Uygulama Yapılandırma mağazasında anahtar değerleri oluşturun.
  • ARM şablonundan uygulama yapılandırma mağazasındaki anahtar değerlerini okuyun.

ARM şablonu projenizin altyapısını ve yapılandırmasını tanımlayan bir JavaScript Nesne Gösterimi (JSON) dosyasıdır. Bu şablonda, bildirim temelli sözdizimi kullanılır. Bildirim temelli sözdiziminde, dağıtım oluşturmak için programlama komutlarının dizisini yazmadan amaçladığınız dağıtımı ifade edersiniz.

Ortamınız önkoşulları karşılıyorsa ve ARM şablonlarını kullanma hakkında bilginiz varsa, Azure’a dağıtma düğmesini seçin. Şablon Azure portalda açılır.

Azure’a dağıtma

Ön koşullar

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Yetkilendirme

ARM şablonu içinde anahtar-değer verilerine erişmek için katkıda bulunan Azure Resource Manager sahip gibi bir rol gerekir. Veri düzlemi rollerinden Azure Uygulama Yapılandırması erişim şu anda desteklenmiyor.

Not

Erişim anahtarı kimlik doğrulaması devre dışı bırakılırsa ARM şablonu içindeki anahtar-değer veri erişimi devre dışı bırakılır. Daha fazla bilgi için bkz. Erişim anahtarı kimlik doğrulamasını devre dışı bırakma.

Şablonu gözden geçirme

Bu hızlı başlangıçta kullanılan şablon Azure Hızlı Başlangıç Şablonlarından alınmıştır. İçinde iki anahtar-değer bulunan yeni bir Uygulama Yapılandırma deposu oluşturur. Ardından işlevini reference kullanarak iki anahtar-değer kaynaklarının değerlerini verir. Anahtarın değerinin bu şekilde okunması, şablonun diğer yerlerinde de kullanılmaktadır.

Hızlı başlangıç, copy anahtar-değer kaynağının birden çok örneğini oluşturmak için öğesini kullanır. öğesi hakkında daha fazla copy bilgi edinmek için bkz. ARM şablonlarında kaynak yinelemesi.

Önemli

Bu şablon, Uygulama Yapılandırması kaynak sağlayıcısı sürümünü veya 2020-07-01-preview sonraki bir sürümünü gerektirir. Bu sürüm, reference anahtar-değerleri okumak için işlevini kullanır. Önceki listKeyValue sürümde anahtar değerlerini okumak için kullanılan işlev sürümünden başlayarak 2020-07-01-preview kullanılamaz.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "configStoreName": {
      "type": "string",
      "metadata": {
        "description": "Specifies the name of the App Configuration store."
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Specifies the Azure location where the app configuration store should be created."
      }
    },
    "keyValueNames": {
      "type": "array",
      "defaultValue": [ "myKey", "myKey$myLabel" ],
      "metadata": {
        "description": "Specifies the names of the key-value resources. The name is a combination of key and label with $ as delimiter. The label is optional."
      }
    },
    "keyValueValues": {
      "type": "array",
      "defaultValue": [ "Key-value without label", "Key-value with label" ],
      "metadata": {
        "description": "Specifies the values of the key-value resources. It's optional"
      }
    },
    "contentType": {
      "type": "string",
      "defaultValue": "the-content-type",
      "metadata": {
        "description": "Specifies the content type of the key-value resources. For feature flag, the value should be application/vnd.microsoft.appconfig.ff+json;charset=utf-8. For Key Value reference, the value should be application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8. Otherwise, it's optional."
      }
    },
    "tags": {
      "type": "object",
      "defaultValue": {
        "tag1": "tag-value-1",
        "tag2": "tag-value-2"
      },
      "metadata": {
        "description": "Adds tags for the key-value resources. It's optional"
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.AppConfiguration/configurationStores",
      "apiVersion": "2020-07-01-preview",
      "name": "[parameters('configStoreName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "standard"
      }
    },
    {
      "type": "Microsoft.AppConfiguration/configurationStores/keyValues",
      "apiVersion": "2020-07-01-preview",
      "name": "[concat(parameters('configStoreName'), '/', parameters('keyValueNames')[copyIndex()])]",
      "copy": {
        "name": "keyValueCopy",
        "count": "[length(parameters('keyValueNames'))]"
      },
      "dependsOn": [
        "[parameters('configStoreName')]"
      ],
      "properties": {
        "value": "[parameters('keyValueValues')[copyIndex()]]",
        "contentType": "[parameters('contentType')]",
        "tags": "[parameters('tags')]"
      }
    }
  ],
  "outputs": {
    "reference-key-value-value": {
      "value": "[reference(resourceId('Microsoft.AppConfiguration/configurationStores/keyValues', parameters('configStoreName'), parameters('keyValueNames')[0]), '2020-07-01-preview').value]",
      "type": "string"
    },
    "reference-key-value-object": {
      "value": "[reference(resourceId('Microsoft.AppConfiguration/configurationStores/keyValues', parameters('configStoreName'), parameters('keyValueNames')[1]), '2020-07-01-preview')]",
      "type": "object"
    }
  }
}

Şablonda iki Azure kaynağı tanımlanmıştır:

İpucu

Kaynağın keyValues adı, anahtar ve etiketin birleşimidir. Anahtar ve etiket sınırlayıcı tarafından $ bir araya geldi. Etiket isteğe bağlıdır. Yukarıdaki örnekte, adı keyValues olan kaynak etiket olmadan bir myKey anahtar-değer oluşturur.

URL kodlaması olarak da bilinen yüzde kodlama, anahtarların veya etiketlerin ARM şablonu kaynak adlarına izin verilmiyor karakterleri içermesine izin verir. % , izin verilen bir karakter değildir, ~ bu nedenle onun yerine kullanılır. Bir adı doğru şekilde kodlamak için şu adımları izleyin:

  1. URL kodlaması uygulama
  2. yerine ~``~7E
  3. yerine %``~

Örneğin, anahtar adı ve etiket adı ile bir anahtar-değer çifti oluşturmak için AppName:DbEndpoint kaynak adı olması Test AppName~3ADbEndpoint$Test gerekir.

Not

Uygulama Yapılandırması, sanal ağınız üzerinden özel bağlantı üzerinden anahtar-değer veri erişimine izin verir. Varsayılan olarak, özellik etkinleştirildiğinde genel ağ üzerinden Uygulama Yapılandırması verilerinize yapılan tüm istekler reddedilir. ARM şablonu sanal ağ dışında çalıştırıla olduğundan ARM şablonundan veri erişimine izin verilmez. Özel bağlantı kullanılırken ARM şablonundan veri erişimine izin vermek için aşağıdaki Azure CLI komutunu kullanarak genel ağ erişimini etkinleştirebilirsiniz. Bu senaryoda genel ağ erişimini etkinleştirmenin güvenlik üzerindeki etkilerini göz önünde bulundurabilirsiniz.

az appconfig update -g MyResourceGroup -n MyAppConfiguration --enable-public-network true

Şablonu dağıtma

Aşağıdaki görüntüyü seçerek Azure'da oturum açıp bir şablon açın. Şablon, içinde iki anahtar değeri olan bir Uygulama Yapılandırma deposu oluşturur.

Azure’a dağıtın

Şablonu aşağıdaki PowerShell cmdlet'ini kullanarak da dağıtabilirsiniz. Anahtar-değerler PowerShell konsol çıkışında yer alar.

$projectName = Read-Host -Prompt "Enter a project name that is used for generating resource names"
$location = Read-Host -Prompt "Enter the location (i.e. centralus)"
$templateUri = "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.appconfiguration/app-configuration-store-kv/azuredeploy.json"

$resourceGroupName = "${projectName}rg"

New-AzResourceGroup -Name $resourceGroupName -Location "$location"
New-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName -TemplateUri $templateUri

Read-Host -Prompt "Press [ENTER] to continue ..."

Dağıtılan kaynakları gözden geçirme

  1. Azure Portal oturum açın.
  2. Uygulama Azure portal kutusuna Uygulama Yapılandırması yazın. Listeden Uygulama Yapılandırması'ı seçin.
  3. Yeni oluşturulan Uygulama Yapılandırması kaynağını seçin.
  4. İşlemler altında Yapılandırma gezgini'ne tıklayın.
  5. İki anahtar-değerin mevcut olduğunu doğrulayın.

Kaynakları temizleme

Artık gerekli değilken kaynak grubunu, Uygulama Yapılandırma depolarını ve tüm ilgili kaynakları silin. Gelecekte Uygulama Yapılandırma mağazasını kullanmayı planlıyorsanız, silmeyi atlayabilirsiniz. Bu depoya devam edecek değilsanız, aşağıdaki cmdlet'i çalıştırarak bu hızlı başlangıç tarafından oluşturulan tüm kaynakları silin:

$resourceGroupName = Read-Host -Prompt "Enter the Resource Group name"
Remove-AzResourceGroup -Name $resourceGroupName
Write-Host "Press [ENTER] to continue..."

Sonraki adımlar

Uygulama Yapılandırma deposuna özellik bayrağı ve Key Vault ekleme hakkında bilgi edinmek için ARM şablonu örneklerinin altına bakın.