Hızlı Başlangıç: ARM şablonu kullanarak Azure Uygulaması Yapılandırma deposu oluşturma

Bu hızlı başlangıçta nasıl yapılacağını açıklar:

  • Azure Resource Manager şablonu (ARM şablonu) kullanarak bir Uygulama Yapılandırması deposu dağıtma.
  • ARM şablonunu kullanarak bir Uygulama Yapılandırması deposunda anahtar değerleri oluşturun.
  • ARM şablonundan bir Uygulama Yapılandırması deposundaki anahtar değerlerini okuyun.

İpucu

Özellik bayrakları ve Key Vault başvuruları özel anahtar-değer türleridir. ARM şablonunu kullanarak oluşturma örnekleri için Sonraki adımlara göz atın.

Azure Resource Manager ş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. Dağıtımı oluşturmak için programlama komutlarının sırasını yazmadan hedeflenen dağıtımınızı açıklarsınız.

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.

Button to deploy the Resource Manager template to Azure.

Önkoş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 veya sahip gibi bir Azure Resource Manager rolü gerekir. şu anda Azure Uygulaması Yapılandırma veri düzlemi rollerinden biri aracılığıyla erişim desteklenmez.

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ğeri olan yeni bir Uygulama Yapılandırması deposu oluşturur. Ardından iki anahtar-değer kaynağının değerlerini çıkarmak için işlevini kullanır reference . Anahtarın değerini bu şekilde okumak, anahtarın şablondaki diğer yerlerde kullanılmasını sağlar.

Hızlı başlangıçta, anahtar-değer kaynağının copy birden çok örneğini oluşturmak için öğesi kullanılır. öğesi hakkında copy daha fazla 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 sonraki bir sürümünü 2020-07-01-preview gerektirir. Bu sürüm, reference anahtar-değerleri okumak için işlevini kullanır. listKeyValue Önceki sürümdeki anahtar-değerleri okumak için kullanılan işlev sürümünden 2020-07-01-previewitibaren kullanılamaz.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.5.6.12127",
      "templateHash": "2173262573838896712"
    }
  },
  "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": "2021-10-01-preview",
      "name": "[parameters('configStoreName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "standard"
      }
    },
    {
      "copy": {
        "name": "configStoreKeyValue",
        "count": "[length(parameters('keyValueNames'))]"
      },
      "type": "Microsoft.AppConfiguration/configurationStores/keyValues",
      "apiVersion": "2021-10-01-preview",
      "name": "[format('{0}/{1}', parameters('configStoreName'), parameters('keyValueNames')[copyIndex()])]",
      "properties": {
        "value": "[parameters('keyValueValues')[copyIndex()]]",
        "contentType": "[parameters('contentType')]",
        "tags": "[parameters('tags')]"
      },
      "dependsOn": [
        "[resourceId('Microsoft.AppConfiguration/configurationStores', parameters('configStoreName'))]"
      ]
    }
  ],
  "outputs": {
    "reference_key_value_value": {
      "type": "string",
      "value": "[reference(resourceId('Microsoft.AppConfiguration/configurationStores/keyValues', parameters('configStoreName'), parameters('keyValueNames')[0])).value]"
    },
    "reference_key_value_object": {
      "type": "object",
      "value": "[reference(resourceId('Microsoft.AppConfiguration/configurationStores/keyValues', parameters('configStoreName'), parameters('keyValueNames')[1]), '2021-10-01-preview', 'full')]"
    }
  }
}

Şablonda iki Azure kaynağı tanımlanır:

İpucu

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

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

  1. URL kodlaması uygulama
  2. şununla değiştir ~~7E
  3. şununla değiştir %~

Örneğin, anahtar adı ve etiket adı AppName:DbEndpointTestile bir anahtar-değer çifti oluşturmak için kaynak adı olmalıdır AppName~3ADbEndpoint$Test.

Not

Uygulama Yapılandırması, sanal ağınızdan özel bir 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 yönelik tüm istekler reddedilir. ARM şablonu sanal ağınızın dışında çalıştığından ARM şablonundan veri erişimine izin verilmez. Özel bağlantı kullanıldığında 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 etkilerini göz önünde bulundurmak önemlidir.

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ırması deposu oluşturur.

Button to deploy the Resource Manager template to Azure.

Şablonu aşağıdaki PowerShell cmdlet'ini kullanarak da dağıtabilirsiniz. Anahtar-değerler PowerShell konsolunun çıkışında olacaktır.

$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’ında oturum açın.
  2. Azure portalı arama 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'in altında Yapılandırma gezgini'ne tıklayın.
  5. İki anahtar-değerin var olduğunu doğrulayın.

Kaynakları temizleme

Artık gerekli olmadığında kaynak grubunu, Uygulama Yapılandırması depoyu ve tüm ilgili kaynakları silin. gelecekte Uygulama Yapılandırması depoyu kullanmayı planlıyorsanız, silme işlemini atlayabilirsiniz. Bu depoyu kullanmaya devam etmeyecekseniz 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

bir Uygulama Yapılandırması deposuna özellik bayrağı ve Key Vault başvurusu ekleme hakkında bilgi edinmek için aşağıdaki ARM şablonu örneklerini gözden geçirin.