Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Se você adotou Configuração como Código e gerencia suas configurações no GitHub, pode usar as Ações do GitHub para importar automaticamente arquivos de configuração do repositório do GitHub para a App Configuration Store. Isso permite que você faça alterações em seus arquivos de configuração como faria normalmente, enquanto obtém benefícios da App Configuration Store como:
- Configuração centralizada fora do seu código.
- Atualizando a configuração sem reimplantar todo o aplicativo.
- Integração com serviços como o Serviço de Aplicativo do Azure e o Functions.
Um fluxo de trabalho de ação do GitHub define um processo automatizado em um repositório do GitHub. Para importar um ficheiro de configuração do seu repositório do GitHub para o arquivo do Azure App Configuration, utilize a ação do GitHub da CLI do Azure, que oferece todas as capacidades para importar ficheiros para o seu arquivo do App Configuration.
Autenticação
Para importar configurações para sua loja de Configuração de Aplicativo do Azure, você pode autenticar usando um dos seguintes métodos:
Usar o Microsoft Entra ID
A maneira recomendada de autenticar é usando o Microsoft Entra ID, que permite que você se conecte com segurança aos seus recursos do Azure. Você pode automatizar o processo de autenticação utilizando a ação do GitHub Azure Login.
O Logon do Azure permite que você se autentique usando entidades de serviço com segredos ou OpenID Connect com uma Credencial de Identidade Federada. Neste exemplo, você usará o OpenID Connect para fazer login na sua loja 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á:
- Configure um aplicativo Microsoft Entra com uma entidade de serviço.
- Atribua à sua aplicação Microsoft Entra a função App Configuration Data Owner para permitir que a sua ação do GitHub leia e escreva no seu arquivo de App Configuration.
- Forneça a ID do Cliente, a ID do Locatário e a ID da Assinatura do aplicativo Microsoft Entra para a ação de login. Esses valores podem ser fornecidos diretamente no fluxo de trabalho ou armazenados como segredos do GitHub para melhor segurança. No exemplo abaixo, esses valores são definidos como segredos. Para obter mais informações sobre como usar segredos no GitHub, consulte Usando segredos em ações do GitHub.
Para começar a usar esta Ação do GitHub, vá para o seu repositório e selecione a guia Ações. Selecione Novo fluxo de trabalho e, em seguida, Configure um fluxo de trabalho você mesmo. Por fim, pesquise no mercado por "Login do Azure". Depois de encontrá-lo, clique na ação e copie o trecho fornecido em seu arquivo de 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 }}
Utilizar uma string de ligação
Como alternativa, você pode autenticar 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, pode encontrar a cadeia de ligação em Definições de Acesso da sua loja de Configuração de Aplicações no portal do Azure.
Em seguida, defina essa cadeia de conexão como uma variável secreta no repositório GitHub. Para obter mais informações sobre como usar segredos no GitHub, consulte Usando segredos em ações do GitHub..
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 do arquivo de configuração
Utiliza a ação do GitHub CLI do Azure para importar um ficheiro de configuração para o repositório do App Configuration. Para começar a usar esta Ação do GitHub, vá para o seu repositório e selecione a guia Ações. Selecione Novo fluxo de trabalho e, em seguida, Configure um fluxo de trabalho você mesmo. Por fim, pesquise no marketplace por “CLI do Azure Action”. Depois de encontrá-lo, clique na ação e copie o trecho fornecido em seu arquivo de fluxo de trabalho.
No exemplo a seguir, você usa a ação CLI do Azure para importar arquivos de configuração para um repositório de Configuração de Aplicativo do Azure quando uma alteração é enviada por push para appsettings.json. Quando um programador submete uma alteração para appsettings.json, o script fornecido à ação da CLI do Azure atualiza o arquivo do App Configuration com os novos valores.
A secção on deste fluxo de trabalho especifica que a ação é acionada on um push que contém appsettings.json no ramo main. A seção de trabalhos lista os trabalhos executados assim que a ação é acionada. A ação verifica os arquivos relevantes e atualiza a App Configuration Store.
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 <AppConfigurationEndpoint> --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 do Aplicativo do Azure, consulte a documentação da CLI do Azure AppConfiguration.
Usar um rótulo dinâmico na importação
Usar um rótulo dinâmico em cada importação é uma boa maneira de manter um controle de versão claro e preciso de suas configurações. Ele permite que cada importação para sua loja de configuração de aplicativos seja identificada de forma exclusiva, facilitando o mapeamento de alterações de código para atualizações de configuração.
Exemplo de utilização de uma etiqueta dinâmica na importação
No exemplo a seguir, todos os valores-chave importados terão um rótulo exclusivo com base no hash de confirmação.
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 <AppConfigurationEndpoint> --auth-mode login -s file --path appsettings.json --format json --label ${{ steps.determine_label.outputs.LABEL }} --yes
Próximos passos
Para saber como utilizar os comandos de importação do CLI do Azure, consulte o nosso guia completo Comandos de importação do CLI do Azure.
Para saber mais sobre diferentes perfis de conteúdo de arquivo, consulte Suporte à Configuração de Aplicativo do Azure para arquivos de configuração.