Partilhar via


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.

Botão para implantar o modelo do Gerenciador de Recursos no 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:

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:

  1. Aplicar codificação de URL
  2. Substitua ~ por ~7E
  3. Substitua % por ~

Por exemplo, para criar um par chave-valor com nome AppName:DbEndpoint de chave e nome Testde 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.

Botão para implantar o modelo do Gerenciador de Recursos no Azure.

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

  1. Inicie sessão no portal do Azure.
  2. Na caixa de pesquisa do portal do Azure, digite Configuração do Aplicativo. Selecione Configuração do aplicativo na lista.
  3. Selecione o recurso de Configuração do Aplicativo recém-criado.
  4. Em Operações, clique em Configuration explorer.
  5. 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.