Schnellstart: Erstellen eines Azure App Configuration-Speichers per ARM-Vorlage
In dieser Schnellstartanleitung wird Folgendes beschrieben:
- Bereitstellen eines App Configuration-Speichers mithilfe einer Azure Resource Manager-Vorlage (ARM-Vorlage).
- Erstellen von Schlüsselwerten in einem App Configuration-Speicher per ARM-Vorlage.
- Lesen von Schlüsselwerten in einem App Configuration-Speicher per ARM-Vorlage.
Tipp
Featureflags und Key Vault-Verweise sind spezielle Typen von Schlüsselwerten. Sehen Sie sich die Nächsten Schritte an, um Beispiele für deren Erstellung mit der ARM-Vorlage zu finden.
Eine Azure Resource Manager-Vorlage ist eine JSON (JavaScript Object Notation)-Datei, welche die Infrastruktur und die Konfiguration für Ihr Projekt definiert. Die Vorlage verwendet eine deklarative Syntax. Sie beschreiben Ihre geplante Bereitstellung, ohne die Abfolge der Programmierbefehle zum Erstellen der Bereitstellung zu schreiben.
Wenn Ihre Umgebung die Voraussetzungen erfüllt und Sie mit der Verwendung von ARM-Vorlagen vertraut sind, klicken Sie auf die Schaltfläche In Azure bereitstellen. Die Vorlage wird im Azure-Portal geöffnet.
Voraussetzungen
Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
Autorisierung
Die Verwaltung der Azure App-Konfigurationsressource innerhalb einer ARM-Vorlage erfordert eine Azure Resource Manager-Rolle, z. B. Mitwirkender oder Besitzer. Für den Zugriff auf Azure App-Konfigurationsdaten (Schlüsselwerte, Momentaufnahmen) ist die Azure Resource Manager-Rolle und die Azure App-Konfigurationsdatenebenenrolle im Pass-Through-ARM-Authentifizierungsmodus erforderlich.
Wichtig
Die Konfiguration des ARM-Authentifizierungsmodus erfordert App Configuration Steuerungsebenen-API Version 2023-08-01-preview
oder höher.
Überprüfen der Vorlage
Die in dieser Schnellstartanleitung verwendete Vorlage stammt von der Seite mit den Azure-Schnellstartvorlagen. Hiermit wird ein neuer App Configuration-Speicher erstellt, der zwei Schlüsselwerte enthält. Anschließend wird die Funktion reference
verwendet, um die Werte der beiden Schlüsselwertressourcen auszugeben. Wenn der Wert des Schlüssels auf diese Weise gelesen wird, kann er auch an anderen Stellen der Vorlage verwendet werden.
In der Schnellstartanleitung wird das Element copy
verwendet, um mehrere Instanzen der Schlüsselwertressource zu erstellen. Weitere Informationen zum Element copy
finden Sie unter Ressourceniteration in ARM-Vorlagen.
Wichtig
Diese Vorlage erfordert die App Configuration Steuerungsebenen-API Version 2022-05-01
oder höher. In dieser Version wird die Funktion reference
zum Lesen von Schlüsselwerten verwendet. Die Funktion listKeyValue
, die in der vorherigen Version zum Lesen von Schlüsselwerten verwendet wurde, ist ab Version 2020-07-01-preview
nicht mehr verfügbar.
{
"$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')]"
}
}
}
}
Zwei Azure-Ressourcen sind in der Vorlage definiert:
- Microsoft.AppConfiguration/configurationStores: Erstellen eines App Configuration-Speichers
- Microsoft.AppConfiguration/configurationStores/keyValues: Erstellen eines Schlüsselwerts im App Configuration-Speicher
Tipp
Der Name der Ressource keyValues
ist eine Kombination aus Schlüssel und Bezeichnung. Der Schlüssel und die Bezeichnung werden mit dem Trennzeichen $
verknüpft. Die Bezeichnung ist optional. Im obigen Beispiel wird von der Ressource keyValues
mit dem Namen myKey
ein Schlüsselwert ohne Bezeichnung erstellt.
Bei der Prozentcodierung, die auch als URL-Codierung bezeichnet wird, können Schlüssel oder Bezeichnungen Zeichen enthalten, die in Ressourcennamen von ARM-Vorlagen nicht zulässig sind. Da auch %
kein zulässiges Zeichen ist, wird stattdessen ~
verwendet. Führen Sie die folgenden Schritte aus, um einen Namen richtig zu codieren:
- Anwenden der URL-Codierung
- Ersetzen Sie
~
durch~7E
. - Ersetzen Sie
%
durch~
.
Um beispielsweise ein Schlüssel-Wert-Paar mit dem Schlüsselnamen AppName:DbEndpoint
und der Bezeichnung Test
zu erstellen, sollte der Ressourcenname AppName~3ADbEndpoint$Test
lauten.
Hinweis
App Configuration ermöglicht den Schlüssel-Wert-Datenzugriff über eine private Verbindung von Ihrem virtuellen Netzwerk. Wenn das Feature aktiviert ist, werden alle Anforderungen für Ihre App Configuration-Daten über das öffentliche Netzwerk standardmäßig verweigert. Da die ARM-Vorlage außerhalb des virtuellen Netzwerks ausgeführt wird, ist der Datenzugriff über eine ARM-Vorlage nicht zulässig. Um den Datenzugriff über eine ARM-Vorlage bei Verwendung einer privaten Verbindung zuzulassen, können Sie den Zugriff auf das öffentliche Netzwerk mithilfe des folgenden Azure CLI-Befehls aktivieren. In diesem Szenario ist es wichtig, die Sicherheitsauswirkungen zu berücksichtigen, die sich durch die Aktivierung des Zugriffs auf das öffentliche Netzwerk ergeben.
az appconfig update -g MyResourceGroup -n MyAppConfiguration --enable-public-network true
Bereitstellen der Vorlage
Klicken Sie auf das folgende Bild, um sich bei Azure anzumelden und eine Vorlage zu öffnen. Mit der Vorlage wird ein App Configuration-Speicher erstellt, der zwei Schlüsselwerte enthält.
Sie können die Vorlage auch mit dem folgenden PowerShell-Cmdlet bereitstellen. Die Schlüsselwerte sind in der Ausgabe der PowerShell-Konsole enthalten.
$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 ..."
Überprüfen der bereitgestellten Ressourcen
- Melden Sie sich beim Azure-Portal an.
- Geben Sie im Azure-Portal im Suchfeld den Suchbegriff App Configuration ein. Wählen Sie in der Liste den Eintrag App Configuration aus.
- Wählen Sie die neu erstellte App Configuration-Ressource aus.
- Klicken Sie unter Vorgänge auf Konfigurations-Explorer.
- Vergewissern Sie sich, dass zwei Schlüsselwerte vorhanden sind.
Bereinigen von Ressourcen
Löschen Sie die Ressourcengruppe, den App Configuration-Speicher und alle zugehörigen Ressourcen, wenn Sie sie nicht mehr benötigen. Falls Sie planen, den App Configuration-Speicher weiter zu nutzen, können Sie das Löschen überspringen. Wenn Sie diesen Speicher nicht weiter verwenden möchten, löschen Sie alle in diesem Schnellstart erstellten Ressourcen, indem Sie das folgende Cmdlet ausführen:
$resourceGroupName = Read-Host -Prompt "Enter the Resource Group name"
Remove-AzResourceGroup -Name $resourceGroupName
Write-Host "Press [ENTER] to continue..."
Nächste Schritte
Sehen Sie sich die unten angegebenen Beispiele für ARM-Vorlagen an, um sich über das Hinzufügen von Featureflags zu informieren und sich mit dem App Configuration-Speicher vertraut zu machen.