Início Rápido: Criar um armazenamento da Configuração de Aplicativos do Azure usando um modelo do ARM
Este guia de início rápido descreve como:
- Implantar um repositório de Configuração de Aplicativos usando um modelo do ARM (modelo do Azure Resource Manager).
- Criar pares chave/valor em um repositório de Configuração de Aplicativos usando um modelo do ARM.
- Ler pares chave/valor em um repositório de Configuração de Aplicativos por meio do modelo do ARM.
Dica
Sinalizadores de recursos e referências do Key Vault são tipos especiais de chave-valor. Confira as Próximas etapas para obter exemplos de como criá-los usando o modelo do 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 usa a sintaxe declarativa. Você descreve a implantação pretendida sem escrever a sequência de comandos de programação para criar a implantação.
Se seu ambiente atender aos pré-requisitos e você estiver familiarizado com o uso de modelos ARM, selecione o botão Implantar no Azure. O modelo será aberto no portal do Azure.
Pré-requisitos
Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.
Autorização
O gerenciamento do recurso Configuração de Aplicativos do Azure dentro de um modelo do ARM requer a função Azure Resource Manager, como colaborador ou proprietário. O acesso a dados da Configuração de Aplicativos do Azure (valores-chave, instantâneos) requer a função Azure Resource Manager e a função de plano de dados da Configuração de Aplicativos do Azure no modo de autenticação do ARM de passagem.
Importante
Configurar o modo de autenticação do ARM requer a versão 2023-08-01-preview
da API do plano de controle da Configuração de Aplicativos ou posterior.
Examinar o modelo
O modelo usado neste início rápido é proveniente dos Modelos de Início Rápido do Azure. Ele cria um repositório de Configuração de Aplicativos com dois pares chave/valor dentro. Em seguida, ele usa a função reference
para gerar os valores dos dois recursos de par chave/valor. Dessa maneira, a leitura do valor da chave permite que ele seja usado em outros locais do modelo.
O guia de início rápido usa o elemento copy
para criar várias instâncias do recurso de par chave/valor. Para saber mais sobre o elemento copy
, confira Iteração de recursos em modelos do ARM.
Importante
Esse modelo requer a versão 2022-05-01
da API do plano de controle da Configuração de Aplicativos ou posterior. Essa versão usa a função reference
para ler pares chave/valor. A função listKeyValue
que foi usada para ler valores de chave na versão anterior não está disponível da versão 2020-07-01-preview
em diante.
{
"$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')]"
}
}
}
}
Há dois recursos do Azure definidos no modelo:
- Microsoft.AppConfiguration/configurationStores: cria um repositório de Configuração de Aplicativos.
- Microsoft.AppConfiguration/configurationStores/keyValues: crie um par chave/valor dentro do repositório de Configuração de Aplicativos.
Dica
O nome do recurso keyValues
é 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 recurso keyValues
com o nome myKey
cria um par chave/valor sem um rótulo.
A codificação por 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 do modelo do ARM. %
não é um caractere permitido, portanto, ~
é usado no lugar dele. 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 o nome da chave AppName:DbEndpoint
e o nome do rótulo Test
, o nome do recurso deve ser AppName~3ADbEndpoint$Test
.
Observação
A Configuração de Aplicativos permite o acesso a dados de chave/valor em um link privado de sua rede virtual. Por padrão, quando o recurso está habilitado, todas as solicitações para os dados de Configuração de Aplicativos pela rede pública são negadas. Como o modelo do ARM é executado fora de sua rede virtual, o acesso a dados de um modelo do ARM não é permitido. Para permitir o acesso a dados de um modelo do ARM quando um link privado é usado, você pode habilitar o acesso à rede pública usando o comando da CLI do Azure a seguir. É importante considerar as implicações de segurança de habilitar o acesso à rede pública neste cenário.
az appconfig update -g MyResourceGroup -n MyAppConfiguration --enable-public-network true
Implantar o modelo
Selecione a imagem a seguir para entrar no Azure e abrir um modelo. O modelo cria um repositório de Configuração de Aplicativos com dois pares chave/valor dentro.
Você também pode implantar o modelo usando o cmdlet do PowerShell a seguir. Os pares chave/valor 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 ..."
Examinar os recursos implantados
- Entre no portal do Azure.
- Na caixa de pesquisa do portal do Azure, digite Configuração de Aplicativos. Selecione Configuração de Aplicativos na lista.
- Selecione o recurso de Configuração de Aplicativos recém-criado.
- Em Operações, clique em Gerenciador de configurações.
- Verifique se há dois pares chave/valor.
Limpar os recursos
Exclua o grupo de recursos, o repositório da Configuração de Aplicativos e todos os recursos relacionados quando eles não forem mais necessários. Se estiver planejando usar o repositório da Configuração de Aplicativos no futuro, você pode ignorar a exclusão deles. Se você não pretende continuar usando esse repositório, 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óximas etapas
Para saber mais sobre como adicionar um sinalizador de recurso e uma referência ao Key Vault a um repositório da Configuração de Aplicativos, confira os exemplos de modelo do ARM abaixo.