Delen via


Configuratiebestanden uit uw GitHub-opslagplaats importeren in het App Configuration-archief

Als u Configuratie hebt aangenomen als code en uw configuraties in GitHub beheert, kunt u GitHub Actions gebruiken om automatisch configuratiebestanden uit uw GitHub-opslagplaats te importeren in uw App Configuration-archief. Op deze manier kunt u wijzigingen aanbrengen in uw configuratiebestanden zoals u dat normaal zou doen, terwijl u voordelen van het App Configuration-archief krijgt, zoals:

  • Gecentraliseerde configuratie buiten uw code.
  • De configuratie bijwerken zonder de hele app opnieuw te implementeren.
  • Integratie met services zoals Azure-app Service en Functions.

Een GitHub Action-werkstroom definieert een geautomatiseerd proces in een GitHub-opslagplaats. Als u een configuratiebestand uit uw GitHub-opslagplaats wilt importeren in Azure-app Configuratiearchief, gebruikt u de Azure CLI GitHub-actie, die volledige mogelijkheden biedt voor het importeren van bestanden in uw App Configuration-archief.

Verificatie

Als u configuraties wilt importeren in uw Azure-app Configuratiearchief, kunt u zich verifiëren met behulp van een van de volgende methoden:

Microsoft Entra-id gebruiken

De aanbevolen manier om te verifiëren is met behulp van Microsoft Entra ID, waarmee u veilig verbinding kunt maken met uw Azure-resources. U kunt het verificatieproces automatiseren met behulp van de Azure Login GitHub-actie .

Met Azure-aanmelding kunt u zich verifiëren met behulp van service-principals met geheimen of OpenID Connect met een federatieve identiteitsreferentie. In dit voorbeeld gebruikt u OpenID Connect om u aan te melden bij uw App Configuration-archief.

Azure-aanmelding gebruiken met OpenID Connect

Als u Azure-aanmelding wilt gebruiken met OpenID Connect, moet u het volgende doen:

  1. Stel een Microsoft Entra-toepassing in met een service-principal.
  2. Wijs uw Microsoft Entra-toepassing toe aan de rol App Configuration-gegevenseigenaar , zodat uw GitHub-actie kan lezen en schrijven naar uw App Configuration-archief.
  3. Geef de client-id, tenant-id en abonnements-id van uw Microsoft Entra-toepassing op voor de aanmeldingsactie. Deze waarden kunnen rechtstreeks in de werkstroom worden opgegeven of worden opgeslagen als GitHub-geheimen voor betere beveiliging. In het onderstaande voorbeeld worden deze waarden ingesteld als geheimen. Zie Geheimen gebruiken in GitHub Actions voor meer informatie over het gebruik van geheimen in GitHub Actions.

Als u deze GitHub Action wilt gaan gebruiken, gaat u naar uw opslagplaats en selecteert u het tabblad Acties. Selecteer Nieuwe werkstroom en stel vervolgens zelf een werkstroom in. Zoek ten slotte in marketplace naar 'Azure-aanmelding'. Zodra u dit hebt gevonden, klikt u op de actie en kopieert u het opgegeven fragment naar uw werkstroombestand.

Het tabblad Actie selecteren

Selecteer de azure-aanmeldingsactie

Voorbeeld van het gebruik van 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 }}

Een verbindingsreeks gebruiken

U kunt ook verifiëren door de verbindingsreeks rechtstreeks door te geven aan de Azure CLI-opdracht. Deze methode omvat het ophalen van de verbindingsreeks vanuit Azure Portal en het gebruik ervan in uw opdrachten of scripts.

Om aan de slag te gaan, vindt u de verbindingsreeks onder Toegangsinstellingen van uw App Configuration-archief in Azure Portal.

Stel vervolgens deze verbindingsreeks in als een geheime variabele in uw GitHub-opslagplaats. Zie Geheimen gebruiken in GitHub Actions voor meer informatie over het gebruik van geheimen in GitHub Actions.

Voorbeeld van een verbindingsreeks

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> }}

Configuratiebestand importeren

U gebruikt de Azure CLI GitHub Action om een configuratiebestand te importeren in uw App Configuration-archief. Als u deze GitHub Action wilt gaan gebruiken, gaat u naar uw opslagplaats en selecteert u het tabblad Acties. Selecteer Nieuwe werkstroom en stel vervolgens zelf een werkstroom in. Zoek ten slotte in marketplace naar 'Azure CLI-actie'. Zodra u dit hebt gevonden, klikt u op de actie en kopieert u het opgegeven fragment naar uw werkstroombestand.

Selecteer de Azure CLI-actie

In het volgende voorbeeld gebruikt u de Azure CLI-actie om configuratiebestanden te importeren in een Azure-app Configuratiearchief wanneer een wijziging naar wordt gepushtappsettings.json. Wanneer een ontwikkelaar een wijziging appsettings.jsonpusht, werkt het script dat wordt doorgegeven aan de Azure CLI-actie het App Configuration-archief bij met de nieuwe waarden.

De sectie in deze werkstroom geeft aan dat de actie wordt geactiveerd voor een push die naar de hoofdbranch bestaatappsettings.json. In de sectie Taken worden de taken weergegeven die worden uitgevoerd zodra de actie is geactiveerd. De actie controleert de relevante bestanden en werkt het App Configuration-archief bij.

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

Zie de CLI-documentatie voor Azure-app Configuration CLI voor meer informatie over Azure-app Cli-importopdrachten voor configuratie.

Een dynamisch label gebruiken bij importeren

Het gebruik van een dynamisch label voor elke import is een goede manier om duidelijke en nauwkeurige versiebeheer van uw configuraties te behouden. Hiermee kan elke import naar uw App Configuration-archief uniek worden geïdentificeerd, waardoor het eenvoudiger is om codewijzigingen toe te wijzen aan configuratie-updates.

Voorbeeld van een dynamisch label bij importeren

In het volgende voorbeeld hebben alle geïmporteerde sleutelwaarden een uniek label op basis van de doorvoer-hash.

 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

Volgende stappen

Raadpleeg onze uitgebreide handleiding voor het importeren van Azure CLI-opdrachten voor meer informatie over het gebruik van CLI-importopdrachten.

Zie Azure-app Configuratieondersteuning voor configuratiebestanden voor meer informatie over verschillende bestandsinhoudsprofielen.