Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questa guida di avvio rapido descrive come:
- Distribuire un archivio App Configuration usando un modello di Azure Resource Manager (modello ARM).
- Creare coppie chiave-valore in un archivio di App Configuration usando un modello ARM.
- Leggere le coppie chiave-valore in un archivio di Configurazione app da un modello di Resource Manager.
Suggerimento
I flag di funzionalità e i riferimenti a Key Vault sono tipi speciali di valori chiave. Consulta i Passaggi successivi per alcuni esempi su come crearli tramite il modello ARM.
Un modello di Azure Resource Manager è un file JSON (JavaScript Object Notation) che definisce l'infrastruttura e la configurazione del progetto. Il modello utilizza la sintassi dichiarativa. Si descrive la distribuzione prevista senza scrivere la sequenza di comandi di programmazione necessari per creare la distribuzione.
Se l'ambiente soddisfa i prerequisiti e si ha dimestichezza con l'uso dei modelli ARM, selezionare il pulsante Distribuisci in Azure. Il modello verrà aperto nel portale di Azure.
Prerequisiti
Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
Autorizzazione
La gestione di una risorsa di Configurazione app di Azure all'interno di un modello ARM richiede un ruolo di Azure Resource Manager, ad esempio Collaboratore o Proprietario. Per accedere ai dati di Configurazione app di Azure (coppie chiave-valore, snapshot) sono necessari il ruolo di Azure Resource Manager e il ruolo del piano dati di Configurazione app di Azure con modalità di autenticazione ARM pass-through.
Importante
Per configurare la modalità di autenticazione ARM è necessaria la versione 2023-08-01-preview o successiva dell'API del piano di controllo di App Configuration.
Rivedere il modello
Il modello usato in questo avvio rapido proviene dai modelli di avvio rapido di Azure. Crea un nuovo archivio di Configurazione app con due coppie chiave-valore al suo interno. Usa quindi la funzione reference per restituire i valori delle due risorse chiave-valore. La lettura del valore della chiave in questo modo ne consente l'uso in altre parti del modello.
La guida di avvio rapido usa l'elemento copy per creare più istanze di una risorsa chiave-valore. Per altre informazioni sull'elemento copy, vedere Iterazione delle risorse nei modelli di Azure Resource Manager.
Importante
Questo modello richiede l'API del piano di controllo di App Configuration versione 2022-05-01 o successiva. Questa versione usa la funzione reference per leggere le coppie chiave-valore. La funzione listKeyValue usata per la lettura di coppie chiave-valore nella versione precedente non è disponibile a partire dalla versione 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')]"
}
}
}
}
Nel modello sono definite due risorse di Azure:
- Microsoft.AppConfiguration/configurationStores: creare un archivio di App Configuration.
- Microsoft.AppConfiguration/configurationStores/keyValues: crea una coppia chiave-valore nell'archivio di App Configuration.
Suggerimento
Il nome della risorsa keyValues è una combinazione di chiave ed etichetta. La chiave e l'etichetta sono unite dal delimitatore $. L'etichetta è facoltativa. Nell'esempio precedente la risorsa keyValues denominata myKey crea una coppia chiave-valore senza etichetta.
La codifica percentuale, nota anche come codifica URL, consente di includere nelle chiavi o nelle etichette caratteri non consentiti nei nomi delle risorse del modello di Resource Manager. Neanche % è un carattere consentito, quindi al suo posto viene usato ~. Per codificare correttamente un nome, seguire questa procedura:
- Applica la codifica URL
- Sostituire
~con~7E - Sostituire
%con~
Ad esempio, per creare una coppia chiave-valore con il nome della chiave AppName:DbEndpoint e il nome dell'etichetta Test, il nome della risorsa dovrà essere AppName~3ADbEndpoint$Test.
Nota
Configurazione app consente l'accesso ai dati di coppie chiave-valore tramite un collegamento privato dalla rete virtuale. Per impostazione predefinita, quando la funzionalità è abilitata, tutte le richieste per i dati di Configurazione app sulla rete pubblica vengono negate. Poiché il modello ARM viene eseguito all'esterno della rete virtuale, l'accesso ai dati da un modello ARM non è consentito. Per consentire l'accesso ai dati da un modello ARM quando viene usato un collegamento privato, è possibile abilitare l'accesso alla rete pubblica con il comando interfaccia della riga di comando di Azure seguente. È importante considerare le implicazioni che l'abilitazione dell'accesso alla rete pubblica ha sulla sicurezza in questo scenario. Sostituire <ResourceGroupName> e <AppConfigurationStoreName> con i nomi del gruppo di risorse e dell'archivio di Configurazione app.
az appconfig update -g <ResourceGroupName> -n <AppConfigurationStoreName> --enable-public-network true
Distribuisci il template
Selezionare l'immagine seguente per accedere ad Azure e aprire un modello. Il modello crea un archivio di App Configuration contenente due coppie chiave-valore.
È anche possibile distribuire il modello con il cmdlet di PowerShell seguente. Le coppie chiave-valore saranno incluse nell'output della console di 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 ..."
Esaminare le risorse distribuite
- Accedere al portale di Azure.
- Nella casella di ricerca del portale di Azure digitare Configurazione app. Selezionare Configurazione app nell'elenco.
- Selezionare la risorsa di Configurazione app appena creata.
- In Operazioni fare clic su Esplora configurazioni.
- Verifica che siano presenti due coppie chiave-valore.
Pulire le risorse
Quando non sono più necessari, eliminare il gruppo di risorse, l'archivio di Configurazione app e tutte le risorse correlate. Se prevedi di utilizzare l'archivio di App Configuration in futuro, puoi evitare di eliminarlo. Se non si intende continuare a usare l'archivio, eliminare tutte le risorse create con questa guida di avvio rapido eseguendo il cmdlet seguente:
$resourceGroupName = Read-Host -Prompt "Enter the Resource Group name"
Remove-AzResourceGroup -Name $resourceGroupName
Write-Host "Press [ENTER] to continue..."
Passaggi successivi
Per informazioni sull'aggiunta di un flag di funzionalità e di un riferimento a Key Vault a un archivio di App Configuration, consultare gli esempi di modelli ARM riportati di seguito.