Share via


Démarrage rapide : Créer un magasin Azure App Configuration avec un modèle Resource Manager

Ce guide de démarrage rapide explique comment :

  • Déployer un magasin App Configuration à l’aide d’un modèle Azure Resource Manager (modèle ARM).
  • Créer des paires clé/valeur dans un magasin App Configuration à l’aide d’un modèle ARM.
  • Lire des paires clé/valeur dans un magasin App Configuration à partir d’un modèle ARM.

Conseil

Les indicateurs de fonctionnalité et les références Key Vault sont des types spéciaux de valeurs clés. Consultez les étapes suivantes pour obtenir des exemples de création à l’aide du modèle ARM.

Un modèle Azure Resource Manager est un fichier JSON (JavaScript Object Notation) qui définit l’infrastructure et la configuration de votre projet. Le modèle utilise la syntaxe déclarative. Vous décrivez votre déploiement prévu sans écrire la séquence de commandes de programmation pour créer le déploiement.

Si votre environnement remplit les prérequis et que vous êtes déjà familiarisé avec l’utilisation des modèles ARM, sélectionnez le bouton Déployer sur Azure. Le modèle s’ouvre dans le portail Azure.

Bouton pour déployer le modèle Resource Manager sur Azure.

Prérequis

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.

Autorisation

Vous devez disposer d’un rôle de contributeur ou de propriétaire dans Azure Resource Manager pour pouvoir gérer la ressource Azure App Configuration au sein d’un modèle ARM. Vous devez disposer d’un rôle Azure Resource Manager et d’un rôle de plan de données Azure App Configuration pour pouvoir accéder aux données Azure App Configuration (valeurs clés, captures instantanées) en mode d’authentification ARM pass-through.

Important

La configuration du mode d’authentification ARM nécessite la version 2023-08-01-preview ou ultérieure de l’API du plan de contrôle App Configuration.

Vérifier le modèle

Le modèle utilisé dans ce démarrage rapide est tiré des modèles de démarrage rapide Azure. Il crée un magasin App Configuration avec deux paires clé/valeur à l’intérieur de celui-ci. Il utilise ensuite la fonction reference pour générer les valeurs des deux ressources clé/valeur. La lecture de la valeur de la clé de cette manière permet de l’utiliser ailleurs dans le modèle.

Le guide de démarrage rapide utilise l’élément copy pour créer plusieurs instances de la ressource clé-valeur. Pour en savoir plus sur l’élément copy, consultez Itération des ressources dans les modèles Resource Manager.

Important

Ce modèle nécessite la version 2022-05-01 ou ultérieure de l’API du plan de contrôle App Configuration. Cette version utilise la fonction reference pour lire les paires clé/valeur. La fonction listKeyValue qui était utilisée pour lire les paires clé/valeur dans la version précédente n’est pas disponible à partir de la version 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.5.6.12127",
      "templateHash": "2173262573838896712"
    }
  },
  "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])).value]"
    },
    "reference_key_value_object": {
      "type": "object",
      "value": "[reference(resourceId('Microsoft.AppConfiguration/configurationStores/keyValues', parameters('configStoreName'), parameters('keyValueNames')[1]), '2021-10-01-preview', 'full')]"
    }
  }
}

Deux ressources Azure sont définies dans le modèle :

Conseil

Le nom de la ressource keyValues est une combinaison de clé et d’étiquette. La clé et l’étiquette sont jointes par le délimiteur de $. L’étiquette est facultative. Dans l’exemple ci-dessus, la ressource keyValues portant le nom myKey crée une paire clé/valeur sans étiquette.

L’encodage par pourcentage, également appelé encodage d’URL, permet aux clés ou aux étiquettes d’inclure des caractères qui ne sont pas autorisés dans les noms des ressources des modèles Resource Manager. % n’étant pas un caractère autorisé, ~ est utilisé à la place. Pour encoder correctement un nom, effectuez les étapes suivantes :

  1. Appliquer l’encodage d’URL
  2. Remplacer ~ par ~7E
  3. Remplacer % par ~

Par exemple, si vous souhaitez créer une paire clé-valeur avec un nom de clé AppName:DbEndpoint et un nom d’étiquette Test, le nom de la ressource doit être AppName~3ADbEndpoint$Test.

Notes

App Configuration permet l’accès aux données de valeur de clé via une liaison privée à partir de votre réseau virtuel. Par défaut, lorsque la fonctionnalité est activée, toutes les demandes de données App Configuration sur le réseau public sont refusées. Étant donné que le modèle ARM s’exécute en dehors de votre réseau virtuel, l’accès aux données à partir d’un modèle ARM n’est pas autorisé. Pour autoriser l’accès aux données à partir d’un modèle ARM quand une liaison privée est utilisée, vous pouvez activer l’accès au réseau public à l’aide de la commande Azure CLI suivante. Il est important de prendre en compte les implications en matière de sécurité de l’activation de l’accès au réseau public dans ce scénario.

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

Déployer le modèle

Cliquez sur l’image ci-après pour vous connecter à Azure et ouvrir un modèle. Le modèle crée un magasin App Configuration avec deux paires clé/valeur à l’intérieur de celui-ci.

Bouton pour déployer le modèle Resource Manager sur Azure.

Vous pouvez également déployer le modèle avec l’applet de commande PowerShell suivante. Les paires clé/valeur apparaîtront dans la sortie de la console 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 ..."

Vérifier les ressources déployées

  1. Connectez-vous au portail Azure.
  2. Dans la zone de recherche du portail Azure, tapez App Configuration. Sélectionnez App Configuration dans la liste.
  3. Sélectionnez la ressource App Configuration tout juste créée.
  4. Sous Opérations, cliquez sur Explorateur de configurations.
  5. Vérifiez que deux paires clé/valeur existent.

Nettoyer les ressources

Quand vous n’en avez plus besoin, supprimez le groupe de ressources, le magasin App Configuration et toutes les ressources associées. Si vous envisagez de réutiliser le magasin App Configuration, ne le supprimez pas. Si vous n’avez plus besoin de ce magasin, supprimez toutes les ressources créées dans le cadre de ce guide de démarrage rapide en exécutant l’applet de commande suivante :

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

Étapes suivantes

Pour en savoir plus sur l’ajout d’un indicateur de fonctionnalité et d’une référence Key Vault à un magasin App Configuration, consultez les exemples de modèles ARM ci-dessous.