Compartilhar via


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á:

  1. Configurar um aplicativo Microsoft Entra com uma entidade de serviço.
  2. 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.
  3. 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.

Selecione a guia Ação

Selecionar a ação de Logon do Azure

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.

Selecionar a ação para CLI do Azure

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.