Bagikan melalui


Mulai cepat: Membuat Microsoft Azure Storage App Configuration dengan menggunakan templat ARM

Mulai cepat ini menjelaskan cara:

  • Terapkan penyimpanan App Configuration dengan menggunakan templat Azure Resource Manager (templat ARM).
  • Buat nilai kunci di penyimpanan App Configuration menggunakan templat ARM.
  • Baca nilai kunci di penyimpanan App Configuration menggunakan templat ARM.

Tip

Bendera fitur dan referensi Key Vault adalah jenis nilai-kunci khusus. Lihat Langkah berikutnya untuk contoh pembuatannya menggunakan templat ARM.

Templat Azure Resource Manager adalah file JavaScript Object Notation (JSON) yang menentukan infrastruktur dan konfigurasi untuk proyek Anda. Template tersebut menggunakan sintaksis deklaratif. Anda menjelaskan penyebaran yang Dimaksudkan tanpa menulis urutan perintah pemrograman untuk membuat penyebaran.

Jika lingkungan Anda telah memenuhi prasyarat dan Anda terbiasa menggunakan templat ARM, pilih tombol Sebarkan ke Azure. Templat akan terbuka di portal Microsoft Azure.

Tombol untuk menyebarkan templat Resource Manager ke Azure.

Prasyarat

Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.

Authorization

Mengelola sumber daya Azure App Configuration di dalam templat ARM memerlukan peran Azure Resource Manager, seperti kontributor atau pemilik. Mengakses data Azure App Configuration (nilai kunci, rekam jepret) memerlukan peran Azure Resource Manager dan peran bidang data Azure App Configuration di bawah mode autentikasi ARM pass-through.

Penting

Mengonfigurasi mode autentikasi ARM memerlukan versi API sarana kontrol App Configuration atau yang lebih 2023-08-01-preview baru.

Meninjau templat

Templat yang digunakan di mulai cepat ini berasal dari Templat Mulai Cepat Azure. Membuat penyimpanan App Configuration baru dengan dua nilai kunci di dalamnya. Kemudian menggunakan fungsi reference untuk menghasilkan nilai dari dua sumber daya nilai kunci. Membaca nilai kunci dengan cara ini memungkinkan untuk digunakan di tempat lain dalam templat.

Mulai cepat menggunakan elemen untuk copy membuat beberapa contoh sumber daya nilai kunci. Untuk mempelajari hal-hal selengkapnya tentang copy elemen tersebut, lihat perulangan sumber daya di templat ARM.

Penting

Templat ini memerlukan versi API sarana kontrol App Configuration atau yang lebih 2022-05-01 baru. Versi ini menggunakan fungsi reference untuk membaca nilai kunci. Fungsi listKeyValue yang digunakan untuk membaca nilai kunci di versi sebelumnya tidak tersedia mulai dalam versi 2020-07-01-preview.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.30.23.60470",
      "templateHash": "539800420350662594"
    }
  },
  "parameters": {
    "configStoreName": {
      "type": "string",
      "defaultValue": "[format('appconfig{0}', uniqueString(resourceGroup().id))]",
      "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": "2024-05-01",
      "name": "[parameters('configStoreName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "standard"
      }
    },
    {
      "copy": {
        "name": "configStoreKeyValue",
        "count": "[length(parameters('keyValueNames'))]"
      },
      "type": "Microsoft.AppConfiguration/configurationStores/keyValues",
      "apiVersion": "2024-05-01",
      "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]), '2024-05-01').value]"
    },
    "reference_key_value_object": {
      "type": "object",
      "value": {
        "name": "[parameters('keyValueNames')[1]]",
        "properties": "[reference(resourceId('Microsoft.AppConfiguration/configurationStores/keyValues', parameters('configStoreName'), parameters('keyValueNames')[1]), '2024-05-01')]"
      }
    }
  }
}

Dua sumber daya Azure yang ditentukan dalam templat:

Tip

Nama keyValues sumber daya adalah kombinasi dari kunci dan label. Kunci dan label digabungkan oleh $ pembatas. Label bersifat opsional. Dalam contoh di atas, keyValues sumber dengan nama membuat nilai kunci tanpa myKey label.

pengkodean persen, juga dikenal sebagai pengkodean URL, memungkinkan kunci atau label untuk menyertakan karakter yang tidak diizinkan dalam nama sumber daya templat ARM. % juga bukan karakter yang diperbolehkan, jadi ~ digunakan sesuai tempatnya. Untuk menyandikan nama dengan benar, ikuti langkah-langkah berikut ini:

  1. Terapkan pengkodean URL
  2. Ganti ~dengan ~7E
  3. Ganti %dengan ~

Misalnya, untuk membuat kombinasi bernilai kunci dengan nama AppName:DbEndpoint kunci dan nama label, nama sumber daya harus Test AppName~3ADbEndpoint$Test.

Catatan

App Configuration memungkinkan akses data dari nilai kunci melalui tautan pribadi dari jaringan virtual Anda. Secara default, saat fitur diaktifkan, semua permintaan untuk data Konfigurasi Aplikasi Anda melalui jaringan publik ditolak. Karena templat ARM berjalan di luar jaringan virtual Anda, akses data dari templat ARM tidak diizinkan. Untuk memperbolehkan akses data dari templat ARM saat tautan pribadi digunakan, Anda bisa mengaktifkan akses jaringan publik dengan menggunakan perintah Azure CLI berikut ini. Penting untuk mempertimbangkan implikasi keamanan dari mengaktifkan akses jaringan publik dalam skenario ini.

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

Menyebarkan templat

Pilih gambar berikut untuk masuk ke Azure dan buka templat. Membuat penyimpanan App Configuration baru dengan dua nilai kunci di dalamnya.

Tombol untuk menyebarkan templat Resource Manager ke Azure.

Anda juga dapat menggunakan templat dengan menggunakan cmdlet PowerShell berikut ini. Nilai kunci akan berada di output konsol PowerShell.

$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 ..."

Meninjau sumber daya yang disebarkan

  1. Masuk ke portal Azure.
  2. Dalam kotak pencarian portal Microsoft Azure, ketik App Configuration. Pilih App Configuration. dari daftar.
  3. Pilih sumber daya terbaru App Configuration yang baru dibuat.
  4. Di bawahOperasi, klik Penjelajah konfigurasi.
  5. Verifikasi bahwa ada dua nilai kunci.

Membersihkan sumber daya

Ketika tidak lagi diperlukan, hapus grup sumber daya, penyimpanan App Configuration, dan semua sumber daya terkait. Jika Anda berencana untuk menggunakan penyimpanan App Configuration di masa mendatang, Anda dapat melewatkan penghapusannya. Jika Anda tidak akan menggunakan penyimpanan ini, hapus semua sumber daya yang dibuat oleh panduan mulai cepat ini dengan menjalankan cmdlet berikut:

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

Langkah berikutnya

Untuk mempelajari tentang penambahan bendera fitur dan referensi Azure Key Vault ke penyimpanan App Configuration, periksa contoh templat ARM di bawah ini.