Delen via


Quickstart: Een Azure-app Configuratiearchief maken met behulp van een ARM-sjabloon

In deze quickstart wordt beschreven hoe u:

  • Een App Configuration-archief implementeren met behulp van een Azure Resource Manager-sjabloon (ARM-sjabloon).
  • Sleutelwaarden maken in een App Configuration-archief met behulp van een ARM-sjabloon.
  • Sleutelwaarden lezen in een App Configuration-archief met behulp van een ARM-sjabloon.

Tip

Functievlagmen en Key Vault-verwijzingen zijn speciale typen sleutelwaarden. Bekijk de volgende stappen voor voorbeelden van het maken ervan met behulp van de ARM-sjabloon.

Een Azure Resource Manager-sjabloon is een JSON-bestand (JavaScript Object Notation) dat de infrastructuur en configuratie voor uw project definieert. Voor de sjabloon is declaratieve syntaxis vereist. U beschrijft de beoogde implementatie zonder de reeks programmeeropdrachten te schrijven om de implementatie te maken.

Als uw omgeving voldoet aan de vereisten en u benkend bent met het gebruik van ARM-sjablonen, selecteert u de knop Implementeren naar Azure. De sjabloon wordt in Azure Portal geopend.

Knop voor het implementeren van de Resource Manager-sjabloon in Azure.

Vereisten

Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.

Autorisatie

Voor het beheren van Azure-app configuratieresource in een ARM-sjabloon is een Azure Resource Manager-rol vereist, zoals inzender of eigenaar. Voor toegang tot Azure-app configuratiegegevens (sleutelwaarden, momentopnamen) is een Azure Resource Manager-rol vereist en Azure-app rol configuratiegegevensvlak onder de passthrough ARM-verificatiemodus.

Belangrijk

Voor het configureren van de ARM-verificatiemodus is de API-versie 2023-08-01-preview van het App Configuration-besturingsvlak of hoger vereist.

De sjabloon controleren

De sjabloon die in deze quickstart wordt gebruikt, komt uit Azure-snelstartsjablonen. Er wordt een nieuw App Configuration-archief gemaakt met twee sleutelwaarden erin. Vervolgens wordt de functie reference gebruikt voor het uitvoeren van de waarden van de twee resources voor sleutelwaarden. Als u de waarde van de sleutel op deze manier leest, kan deze worden gebruikt op andere plaatsen in de sjabloon.

De quickstart maakt gebruik van het element copy voor het maken van meerdere exemplaren van de sleutelwaarde-resource. Zie Resource-iteratie in ARM-sjablonenvoor meer informatie over het element copy.

Belangrijk

Voor deze sjabloon is de API-versie 2022-05-01 van de App Configuration-besturingsvlak of hoger vereist. Deze versie maakt gebruik van de functie reference om sleutelwaarden te lezen. De functie listKeyValue die is gebruikt voor het lezen van sleutelwaarden in de vorige versie is niet meer beschikbaar vanaf versie 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.27.1.19265",
      "templateHash": "6730256877346875647"
    }
  },
  "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]), '2021-10-01-preview').value]"
    },
    "reference_key_value_object": {
      "type": "object",
      "value": {
        "name": "[parameters('keyValueNames')[1]]",
        "properties": "[reference(resourceId('Microsoft.AppConfiguration/configurationStores/keyValues', parameters('configStoreName'), parameters('keyValueNames')[1]), '2021-10-01-preview')]"
      }
    }
  }
}

Er worden twee Azure-resources gedefinieerd in de sjabloon:

Tip

De naam van de keyValues-resource is een combinatie van sleutel en label. De sleutel en het label worden samengevoegd met het scheidingsteken $. Het label is optioneel. In het bovenstaande voorbeeld maakt de keyValues-resource met de naam myKey een sleutelwaarde zonder label.

Met procentcodering, ook wel URL-codering genoemd, kunnen sleutels of labels tekens bevatten die niet zijn toegestaan in de resourcenamen van ARM-sjablonen. % is ook geen toegestaan teken, dus ~ wordt gebruikt in plaats daarvan. Voer de volgende stappen uit om een naam correct te coderen:

  1. URL-codering toepassen
  2. Vervang ~ door ~7E
  3. Vervang % door ~

Als u bijvoorbeeld een sleutelwaardepaar met sleutelnaam AppName:DbEndpoint en labelnaam Test wilt maken, moet de resourcenaam AppName~3ADbEndpoint$Test zijn.

Notitie

In App Configuration is toegang tot sleutelwaardegegevens toegestaan via een privékoppeling vanuit het virtuele netwerk. Wanneer de functie is ingeschakeld, worden alle aanvragen voor uw App Configuration-gegevens via het openbare netwerk standaard geweigerd. Omdat de ARM-sjabloon buiten het virtuele netwerk wordt uitgevoerd, is toegang tot gegevens vanuit een ARM-sjabloon niet toegestaan. Als u toegang tot gegevens vanuit een ARM-sjabloon bij gebruik van een privékoppeling wilt toestaan, kunt u toegang via het openbare netwerk inschakelen met behulp van de volgende Azure CLI-opdracht. Het is van belang om rekening te houden met de beveiligingsimplicaties van het inschakelen van toegang via het openbare netwerk in dit scenario.

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

De sjabloon implementeren

Selecteer de volgende afbeelding om u aan te melden bij Azure en een sjabloon te openen. De sjabloon maakt een nieuw App Configuration-archief met twee sleutelwaarden erin.

Knop voor het implementeren van de Resource Manager-sjabloon in Azure.

U kunt de sjabloon ook implementeren met behulp van de volgende PowerShell-cmdlet. De sleutelwaarden vindt u in de uitvoer van de PowerShell-console.

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

Geïmplementeerde resources bekijken

  1. Meld u aan bij het Azure-portaal.
  2. Typ App Configuration in het zoekvak van de Azure-portal. Selecteer App Configuration uit de lijst.
  3. Selecteer de zojuist gemaakte resource van de App Configuration.
  4. Klik onder Bewerkingen op Configuratieverkenner.
  5. Controleer of er twee sleutelwaarden bestaan.

Resources opschonen

Wanneer u een resourcegroep niet meer nodig hebt, verwijdert u de resourcegroep, het App Configuration-archief en alle gerelateerde resources. Als u van plan bent om het App Configuration-archief in de toekomst te gebruiken, kunt u het verwijderen overslaan. Als u dit archief niet meer gaat gebruiken, verwijdert u alle resources die in deze quickstart zijn gemaakt door de volgende cmdlet uit te voeren:

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

Volgende stappen

Raadpleeg de onderstaande ARM-sjabloonvoorbeelden voor meer informatie over het toevoegen van functievlag en Key Vault-verwijzing naar een App Configuration-archief.