Importar arquivos de configuração do repositório do GitHub para o repositório de Configuração de Aplicativos
Se você adotou a Configuração como Código e gerencia suas configurações no GitHub, pode usar o GitHub Actions para importar automaticamente os arquivos de configuração do repositório do GitHub para o repositório de Configuração de Aplicativos. Isso permite que você faça alterações nos arquivos de configuração como faria normalmente, enquanto aproveita os benefícios do repositório de Configuração de Aplicativos, como:
- Configuração centralizada fora do seu código.
- Atualização da configuração sem precisar reimplantar seu aplicativo inteiro.
- Integração com serviços como o Functions e o Serviço de Aplicativo do Azure.
Um fluxo de trabalho do GitHub Actions define um processo automatizado em um repositório do GitHub. Para importar um arquivo de configuração do repositório do GitHub para o repositório de Configuração de Aplicativos do Azure, use a ação do GitHub para CLI do Azure, que fornece recursos completos para a importação de arquivos para seu repositório de Configuração de Aplicativos.
Autenticação
Para importar as configurações para o seu repositório de Configuração de Aplicativos do Azure, você pode autenticar-se usando um dos seguintes métodos:
Usar a ID do Microsoft Entra
A maneira recomendada de autenticar-se é usando o Microsoft Entra ID, que permite que você se conecte com segurança aos recursos do Azure. Você pode automatizar o processo de autenticação usando a ação do GitHub para Logon do Azure.
O Logon do Azure permite que você se autentique usando entidades de serviço com segredos ou o OpenID Connect com uma Credencial de Identidade Federada. Neste exemplo, você usará o OpenID Connect para fazer logon no repositório de Configuração de Aplicativos.
Usar o logon do Azure com o OpenID Connect
Para usar o Logon do Azure com o OpenID Connect, você precisará:
- Configurar um aplicativo Microsoft Entra com uma entidade de serviço.
- Atribuir ao aplicativo Microsoft Entra a função Proprietário de Dados de Configuração de Aplicativo para permitir que sua ação do GitHub leia e grave no repositório de Configuração de Aplicativos.
- Fornecer a ID do cliente, a ID do locatário e a ID da assinatura do aplicativo Microsoft Entra para a ação de logon. Esses valores podem ser fornecidos diretamente no fluxo de trabalho ou armazenados como segredos do GitHub para ter uma segurança melhor. No exemplo abaixo, esses valores são definidos como segredos. Para obter mais informações sobre como usar segredos no GitHub, consulte Como usar segredos no GitHub Actions.
Para começar a usar essa ação do GitHub, vá para o repositório e selecione a guia Ações. Clique em Novo fluxo de trabalho e, em seguida, Configurar um fluxo de trabalho por conta própria. Por fim, pesquise no marketplace "Logon do Azure". Depois de encontrá-lo, clique na ação e copie o snippet fornecido no arquivo do fluxo de trabalho.
Exemplo usando o Microsoft Entra ID
# Set permissions for the workflow. Specify 'id-token: write' to allow OIDC token generation at the workflow level.
permissions:
id-token: write
contents: read
jobs:
syncconfig:
runs-on: ubuntu-latest
steps:
- name: Azure login
uses: azure/login@v2
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
Usar uma cadeia de conexão
Como alternativa, você pode autenticar-se passando a cadeia de conexão diretamente para o comando da CLI do Azure. Esse método envolve recuperar a cadeia de conexão do portal do Azure e usá-la em seus comandos ou scripts.
Para começar, você pode encontrar a cadeia de conexão nas Configurações de Acesso do repositório de Configuração de Aplicativos no portal do Azure.
Em seguida, defina essa cadeia de conexão como uma variável secreta em seu repositório do GitHub. Para obter mais informações sobre como usar segredos no GitHub, consulte Como usar segredos no GitHub Actions..
Exemplo usando uma cadeia de conexão
on:
push:
branches:
- 'main'
paths:
- 'appsettings.json'
jobs:
syncconfig:
runs-on: ubuntu-latest
# pass the secret variable as an environment variable to access it in your CLI action.
env:
CONNECTION_STRING: ${{ secrets.<ConnectionString> }}
Importação de arquivo de configuração
Use a ação do GitHub para CLI do Azure para importar um arquivo de configuração para o repositório de Configuração de Aplicativos. Para começar a usar essa ação do GitHub, vá para o repositório e selecione a guia Ações. Clique em Novo fluxo de trabalho e, em seguida, Configurar um fluxo de trabalho por conta própria. Por fim, pesquise no marketplace a "Ação para CLI do Azure". Depois de encontrá-lo, clique na ação e copie o snippet fornecido no arquivo do fluxo de trabalho.
No exemplo a seguir, você usa a ação para CLI do Azure para importar arquivos de configuração para um repositório de Configuração de Aplicativos do Azure quando uma alteração é enviada para appsettings.json
. Quando um desenvolvedor envia uma alteração para appsettings.json
, o script passado à ação para CLI do Azure atualiza o repositório de Configuração de Aplicativos com os novos valores.
A seção on deste fluxo de trabalho especifica que a ação dispara on em um push que contém appsettings.json
para o branch main. A seção jobs lista os trabalhos executados depois que a ação é disparada. A ação verifica os arquivos relevantes e atualiza o repositório de Configuração de Aplicativos.
on:
push:
branches:
- 'main'
paths:
- 'appsettings.json'
# Set permissions for the workflow. Specify 'id-token: write' to allow OIDC token generation at the workflow level.
permissions:
id-token: write
contents: read
jobs:
syncconfig:
runs-on: ubuntu-latest
steps:
- name: Azure login
uses: azure/login@v2
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
# checkout done so that files in the repo can be read by the sync
- uses: actions/checkout@v1
- uses: azure/cli@v2
with:
azcliversion: latest
inlineScript: |
az appconfig kv import --endpoint <your-app-configuration-store-endpoint> --auth-mode login -s file --path appsettings.json --format json --yes
Para obter mais informações sobre os comandos de importação da CLI da Configuração de Aplicativo do Azure, consulte a documentação da CLI do Azure AppConfifguration.
Usar um rótulo dinâmico na importação
Usar um rótulo dinâmico em cada importação é uma boa maneira de manter o controle de versão claro e preciso das suas configurações. Ele permite que cada importação para o repositório de Configuração de Aplicativos seja identificada com exclusividade, facilitando o mapeamento de alterações do código para atualizações de configuração.
Exemplo usando um rótulo dinâmico na importação
No exemplo a seguir, todos os pares chave-valor importados terão um rótulo exclusivo com base no hash do commit.
jobs:
syncconfig:
runs-on: ubuntu-latest
steps:
# Creates a label based on the branch name and the first 8 characters
# of the commit hash
- id: determine_label
run: echo ::set-output name=LABEL::"${GITHUB_REF#refs/*/}/${GITHUB_SHA:0:8}"
# checkout done so that files in the repo can be read by the sync
- uses: actions/checkout@v1
- uses: azure/cli@v2
with:
azcliversion: latest
inlineScript: |
az appconfig kv import --endpoint <your-app-configuration-store-endpoint> --auth-mode login -s file --path appsettings.json --format json --label ${{ steps.determine_label.outputs.LABEL }} --yes
Próximas etapas
Para saber como usar os comandos de importação da CLI, consulte nosso guia completo sobre os Comandos de importação da CLI do Azure.
Para saber mais sobre os diferentes perfis de conteúdo de arquivo, consulte Suporte à Configuração de Aplicativos do Azure para arquivos de configuração.