Guia de início rápido: criar um repositório de Configuração de Aplicativo do Azure usando um modelo ARM
Este guia de início rápido descreve como:
- Implante um repositório de Configuração de Aplicativo usando um modelo do Azure Resource Manager (modelo ARM).
- Crie valores-chave em uma loja de configuração de aplicativos usando o modelo ARM.
- Leia valores-chave em uma loja de configuração de aplicativos a partir do modelo ARM.
Gorjeta
Sinalizadores de recursos e referências do Cofre de Chaves são tipos especiais de valores-chave. Confira as próximas etapas para obter exemplos de como criá-los usando o modelo ARM.
Um modelo do Azure Resource Manager é um arquivo JSON (JavaScript Object Notation) que define a infraestrutura e a configuração do seu projeto. O modelo utiliza sintaxe declarativa. Você descreve a implantação pretendida sem escrever a sequência de comandos de programação para criar a implantação.
Se o seu ambiente cumpre os pré-requisitos e se está familiarizado com a utilização de modelos ARM, selecione o botão Implementar no Azure. O modelo será aberto no portal do Azure.
Pré-requisitos
Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.
Autorização
Gerenciar o recurso de Configuração de Aplicativo do Azure dentro de um modelo ARM requer a função do Gerenciador de Recursos do Azure, como colaborador ou proprietário. O acesso aos dados da Configuração do Aplicativo do Azure (valores-chave, instantâneos) requer a função Gerenciador de Recursos do Azure e a função do plano de dados da Configuração do Aplicativo do Azure no modo de autenticação ARM de passagem.
Importante
A configuração do modo de autenticação ARM requer a versão 2023-08-01-preview
da API do plano de controle de configuração do aplicativo ou posterior.
Rever o modelo
O modelo utilizado neste início rápido pertence aos Modelos de Início Rápido do Azure. Ele cria uma nova loja de configuração de aplicativos com dois valores-chave dentro. Em seguida, ele usa a reference
função para produzir os valores dos dois recursos chave-valor. Ler o valor da chave dessa forma permite que ela seja usada em outros lugares no modelo.
O guia de início rápido usa o copy
elemento para criar várias instâncias do recurso chave-valor. Para saber mais sobre o copy
elemento, consulte Iteração de recursos em modelos ARM.
Importante
Este modelo requer a versão 2022-05-01
da API do plano de controle de configuração do aplicativo ou posterior. Esta versão usa a reference
função para ler valores-chave. A listKeyValue
função que foi usada para ler valores-chave na versão anterior não está disponível a partir da versão 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')]"
}
}
}
}
Dois recursos do Azure são definidos no modelo:
- Microsoft.AppConfiguration/configurationStores: crie uma loja de configuração de aplicativos.
- Microsoft.AppConfiguration/configurationStores/keyValues: crie um valor-chave dentro da App Configuration store.
Gorjeta
O keyValues
nome do recurso é uma combinação de chave e rótulo. A chave e o $
rótulo são unidos pelo delimitador. O rótulo é opcional. No exemplo acima, o keyValues
recurso com nome myKey
cria um valor-chave sem um rótulo.
A codificação percentual, também conhecida como codificação de URL, permite que chaves ou rótulos incluam caracteres que não são permitidos em nomes de recursos de modelo ARM. %
também não é um caractere permitido, por isso ~
é usado em seu lugar. Para codificar corretamente um nome, siga estas etapas:
- Aplicar codificação de URL
- Substitua
~
por~7E
- Substitua
%
por~
Por exemplo, para criar um par chave-valor com nome AppName:DbEndpoint
de chave e nome Test
de rótulo, o nome do recurso deve ser AppName~3ADbEndpoint$Test
.
Nota
A Configuração do Aplicativo permite o acesso a dados de chave-valor através de um link privado da sua rede virtual. Por padrão, quando o recurso está habilitado, todas as solicitações para seus dados de Configuração do Aplicativo na rede pública são negadas. Como o modelo ARM é executado fora da sua rede virtual, o acesso a dados de um modelo ARM não é permitido. Para permitir o acesso a dados de um modelo ARM quando um link privado é usado, você pode habilitar o acesso à rede pública usando o seguinte comando da CLI do Azure. É importante considerar as implicações de segurança de habilitar o acesso à rede pública nesse cenário.
az appconfig update -g MyResourceGroup -n MyAppConfiguration --enable-public-network true
Implementar o modelo
Selecione a imagem seguinte para iniciar sessão no Azure e abrir um modelo. O modelo cria uma loja de configuração de aplicativos com dois valores-chave dentro.
Você também pode implantar o modelo usando o seguinte cmdlet do PowerShell. Os valores-chave estarão na saída do console do 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 ..."
Rever os recursos implementados
- Inicie sessão no portal do Azure.
- Na caixa de pesquisa do portal do Azure, digite Configuração do Aplicativo. Selecione Configuração do aplicativo na lista.
- Selecione o recurso de Configuração do Aplicativo recém-criado.
- Em Operações, clique em Configuration explorer.
- Verifique se existem dois valores-chave.
Clean up resources (Limpar recursos)
Quando não for mais necessário, exclua o grupo de recursos, a loja de Configuração de Aplicativos e todos os recursos relacionados. Se planeia utilizar a App Configuration Store no futuro, pode ignorar a eliminação. Se você não quiser continuar a usar esse armazenamento, exclua todos os recursos criados por este início rápido executando o seguinte cmdlet:
$resourceGroupName = Read-Host -Prompt "Enter the Resource Group name"
Remove-AzResourceGroup -Name $resourceGroupName
Write-Host "Press [ENTER] to continue..."
Próximos passos
Para saber mais sobre como adicionar sinalizador de recurso e referência do Cofre da Chave a uma loja de Configuração de Aplicativos, confira abaixo exemplos de modelos ARM.