Snabbstart: Skapa en Azure App Configuration med hjälp av en ARM-mall
Den här snabbstarten beskriver hur du :
- Distribuera ett App Configuration med hjälp av en Azure Resource Manager mall (ARM-mall).
- Skapa nyckelvärden i ett arkiv App Configuration ARM-mall.
- Läsa nyckelvärden i ett App Configuration från ARM-mall.
En ARM-mall är en JSON-fil (JavaScript Object Notation) som definierar infrastrukturen och konfigurationen för ditt projekt. Mallen använder deklarativ syntax. I deklarativ syntax beskriver du din avsedda distribution utan att skriva sekvensen med programmeringskommandon för att skapa den.
Om din miljö uppfyller förhandskraven och du är van att använda ARM-mallar väljer du knappen Distribuera till Azure. Mallen öppnas på Azure-portalen.
Krav
Om du inte har en Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.
Auktorisering
Åtkomst till nyckel/värde-data i en ARM-mall kräver en Azure Resource Manager roll, till exempel deltagare eller ägare. Åtkomst via någon av de Azure App Configuration som dataplanroller för närvarande inte stöds.
Anteckning
Åtkomst till nyckel/värde-data i en ARM-mall inaktiveras om autentisering med åtkomstnyckel är inaktiverat. Mer information finns i inaktivera autentisering med åtkomstnyckel.
Granska mallen
Mallen som används i den här snabbstarten kommer från Azure-snabbstartsmallar. Det skapar ett nytt App Configuration med två nyckelvärden inuti. Den använder sedan funktionen reference för att mata ut värdena för de två nyckel/värde-resurserna. Om du läser nyckelns värde på det här sättet kan det användas på andra platser i mallen.
Snabbstarten använder copy elementet för att skapa flera instanser av nyckelvärdesresursen. Mer information om elementet finns copy i Resurs iteration i ARM-mallar.
Viktigt
Den här mallen kräver App Configuration version av 2020-07-01-preview resursprovidern eller senare. Den här versionen använder reference funktionen för att läsa nyckelvärden. Funktionen listKeyValue som användes för att läsa nyckelvärden i den tidigare versionen är inte tillgänglig från och med version 2020-07-01-preview .
{
"$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"
}
}
}
Två Azure-resurser definieras i mallen:
- Microsoft.AppConfiguration/configurationStores:skapa ett App Configuration store.
- Microsoft.AppConfiguration/configurationStores/keyValues:skapa ett nyckelvärde i App Configuration arkivet.
Tips
Resursens keyValues namn är en kombination av nyckel och etikett. Nyckeln och etiketten är sammanfogade $ med avgränsaren. Etiketten är valfri. I exemplet ovan skapar resursen keyValues med namnet myKey ett nyckelvärde utan en etikett.
Med procentkodning, även kallat URL-kodning, kan nycklar eller etiketter innehålla tecken som inte tillåts i RESURSnamn för ARM-mallar. % är inte heller ett tillåtet tecken, ~ så används i dess ställe. Följ dessa steg om du vill koda ett namn korrekt:
- Använda URL-kodning
- Ersätt
~med~7E - Ersätt
%med~
Om du till exempel vill skapa ett nyckel/värde-par med AppName:DbEndpoint nyckelnamn och Test etikettnamn ska resursnamnet vara AppName~3ADbEndpoint$Test .
Anteckning
App Configuration tillåter åtkomst till nyckel/värde-data via en privat länk från ditt virtuella nätverk. När funktionen är aktiverad nekas som standard alla begäranden App Configuration data över det offentliga nätverket. Eftersom ARM-mallen körs utanför ditt virtuella nätverk tillåts inte dataåtkomst från en ARM-mall. Om du vill tillåta dataåtkomst från en ARM-mall när en privat länk används kan du aktivera åtkomst till offentligt nätverk med hjälp av följande Azure CLI-kommando. Det är viktigt att tänka på säkerhetsriskerna med att aktivera offentlig nätverksåtkomst i det här scenariot.
az appconfig update -g MyResourceGroup -n MyAppConfiguration --enable-public-network true
Distribuera mallen
Välj följande bild för att logga in på Azure och öppna en mall. Mallen skapar ett App Configuration med två nyckelvärden inuti.
Du kan också distribuera mallen med hjälp av följande PowerShell-cmdlet. Nyckelvärdena visas i powershell-konsolens utdata.
$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 ..."
Granska distribuerade resurser
- Logga in på Azure-portalen.
- I sökrutan Azure Portal skriver du App Configuration. Välj App Configuration i listan.
- Välj den nyligen skapade App Configuration resurs.
- Under Åtgärder klickar du på Konfigurationsutforskaren.
- Kontrollera att det finns två nyckelvärden.
Rensa resurser
När resursgruppen inte längre behövs tar du bort den, App Configuration arkivet och alla relaterade resurser. Om du planerar att använda App Configuration butik i framtiden kan du hoppa över att ta bort den. Om du inte kommer att fortsätta använda det här arkivet tar du bort alla resurser som har skapats i den här snabbstarten genom att köra följande cmdlet:
$resourceGroupName = Read-Host -Prompt "Enter the Resource Group name"
Remove-AzResourceGroup -Name $resourceGroupName
Write-Host "Press [ENTER] to continue..."
Nästa steg
Mer information om hur du lägger till funktionsflaggan Key Vault referens till en App Configuration store finns i arm-mallexempel nedan.