Szybki start: tworzenie magazynu Azure App Configuration przy użyciu szablonu ARM

W tym przewodniku Szybki start opisano, jak:

  • Wdróż magazyn konfiguracji aplikacji za pomocą szablonu usługi Azure Resource Manager (szablonu ARM).
  • Utwórz pary klucz-wartość w magazynie App Configuration za pomocą szablonu ARM.
  • Odczytywanie par klucz-wartość z magazynu usługi App Configuration przy użyciu szablonu ARM.

Wskazówka

Flagi funkcji i odwołania do usługi Key Vault są specjalnymi rodzajami par klucz-wartość. Zapoznaj się z sekcją Kolejne kroki, aby zobaczyć przykłady ich tworzenia przy użyciu szablonu ARM.

Szablon usługi Azure Resource Manager to plik JavaScript Object Notation (JSON), który definiuje infrastrukturę i konfigurację projektu. W szablonie używana jest składnia deklaratywna. Możesz opisać zamierzone wdrożenie bez konieczności pisania sekwencji poleceń programowania w celu utworzenia wdrożenia.

Jeśli Twoje środowisko spełnia wymagania wstępne i masz doświadczenie w korzystaniu z szablonów ARM, wybierz przycisk Wdróż na platformie Azure. Szablon zostanie otwarty w witrynie Azure Portal.

Przycisk wdrażania szablonu usługi Resource Manager na platformie Azure.

Wymagania wstępne

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

Autoryzacja

Zarządzanie zasobem Azure App Configuration w szablonie ARM wymaga roli platformy Azure Resource Manager, takiej jak Współautor lub Właściciel. Uzyskiwanie dostępu do danych usługi Azure App Configuration (par klucz-wartość, migawek) wymaga roli usługi Azure Resource Manager oraz roli płaszczyzny danych usługi Azure App Configuration w trybie przekazywanego uwierzytelniania ARM.

Ważne

Konfigurowanie trybu uwierzytelniania ARM wymaga wersji 2023-08-01-preview lub nowszej interfejsu API płaszczyzny sterowania App Configuration.

Przegląd szablonu

Szablon używany w tym przewodniku Szybki start jest jednym z szablonów szybkiego startu platformy Azure. Tworzy nowy magazyn usługi App Configuration z dwoma kluczami wewnątrz. Następnie używa funkcji reference do wypisania wartości dwóch zasobów typu klucz-wartość. Odczytywanie wartości klucza w ten sposób umożliwia użycie go w innych miejscach w szablonie.

W przewodniku Szybki start użyto copy elementu do utworzenia wielu wystąpień zasobu klucz-wartość. Aby dowiedzieć się więcej o elemencie copy, zobacz Iteracja zasobów w szablonach ARM.

Ważne

Ten szablon wymaga interfejsu API płaszczyzny sterowania usługi App Configuration w wersji 2022-05-01 lub nowszej. Ta wersja używa funkcji reference do odczytywania par klucz-wartość. Funkcja listKeyValue używana do odczytywania wartości kluczy w poprzedniej wersji nie jest dostępna, począwszy od wersji 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')]"
      }
    }
  }
}

Dwa zasoby platformy Azure są zdefiniowane w szablonie:

Wskazówka

Nazwa keyValues zasobu jest kombinacją klucza i etykiety. Klucz i etykieta są przyłączone przez $ ogranicznik. Etykieta jest opcjonalna. W powyższym przykładzie zasób keyValues o nazwie myKey tworzy parę klucz-wartość bez etykiety.

Kodowanie procentowe, nazywane również kodowaniem adresów URL, umożliwia kluczom lub etykietom dołączanie znaków, które nie są dozwolone w nazwach zasobów szablonu usługi ARM. % jest niedozwolonym znakiem, więc ~ jest używany w jego miejscu. Aby poprawnie zakodować nazwę, wykonaj następujące kroki:

  1. Stosowanie kodowania adresów URL
  2. Zastąp ciąg ~ ciągiem ~7E
  3. Zastąp ciąg % ciągiem ~

Aby na przykład utworzyć parę klucz-wartość z nazwą AppName:DbEndpoint klucza i nazwą Testetykiety , nazwa zasobu powinna mieć wartość AppName~3ADbEndpoint$Test.

Uwaga

App Configuration umożliwia dostęp do danych w postaci par klucz-wartość przez prywatne łącze z poziomu sieci wirtualnej. Domyślnie po włączeniu funkcji wszystkie żądania dotyczące danych usługi App Configuration w sieci publicznej są odrzucane. Ponieważ szablon usługi ARM działa poza siecią wirtualną, dostęp do danych z szablonu usługi ARM nie jest dozwolony. Aby umożliwić dostęp do danych z szablonu ARM, gdy używany jest prywatny link, możesz włączyć dostęp z sieci publicznej za pomocą następującego polecenia Azure CLI. Ważne jest, aby w tym scenariuszu wziąć pod uwagę implikacje bezpieczeństwa dotyczące włączania dostępu do sieci publicznej. Zastąp elementy <ResourceGroupName> i <AppConfigurationStoreName> nazwami grupy zasobów i magazynu usługi App Configuration.

az appconfig update -g <ResourceGroupName> -n <AppConfigurationStoreName> --enable-public-network true

Wdrażanie szablonu

Wybierz poniższy obraz, aby zalogować się na platformie Azure i otworzyć szablon. Szablon tworzy magazyn App Configuration zawierający dwie pary klucz-wartość.

Przycisk wdrażania szablonu usługi Resource Manager na platformie Azure.

Szablon można również wdrożyć przy użyciu następującego polecenia cmdlet programu PowerShell. Wartości klucza będą znajdować się w danych wyjściowych konsoli programu 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 ..."

Przeglądanie wdrożonych zasobów

  1. Zaloguj się w witrynie Azure Portal.
  2. W polu wyszukiwania w witrynie Azure Portal wpisz App Configuration. Wybierz pozycję Konfiguracja aplikacji z listy.
  3. Wybierz nowo utworzony zasób App Configuration.
  4. W obszarze Operacje kliknij pozycję Eksplorator konfiguracji.
  5. Sprawdź, czy istnieją dwie wartości klucza.

Czyszczenie zasobów

Gdy grupa zasobów, magazyn App Configuration i wszystkie powiązane zasoby nie będą już potrzebne, usuń grupę zasobów. Jeśli planujesz korzystać z magazynu App Configuration w przyszłości, możesz pominąć jego usunięcie. Jeśli nie zamierzasz dalej używać tego sklepu, usuń wszystkie zasoby utworzone w ramach tego przewodnika Szybki start, uruchamiając następujące polecenie cmdlet:

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

Następne kroki

Aby dowiedzieć się, jak dodać flagę funkcji i odwołanie do usługi Key Vault do magazynu App Configuration, zobacz poniższe przykłady szablonów ARM.