Yapılandırma dosyalarını GitHub deponuzdan Uygulama Yapılandırması deposuna aktarma

Kod olarak Yapılandırma'yı benimsediyseniz ve GitHub'daki yapılandırmalarınızı yönetiyorsanız, GitHub Deponuzdaki yapılandırma dosyalarını otomatik olarak Uygulama Yapılandırması deponuza aktarmak için GitHub Actions'ı kullanabilirsiniz. Bu, yapılandırma dosyalarınızda normalde yaptığınız gibi değişiklikler yapmanıza olanak tanırken aşağıdaki gibi Uygulama Yapılandırması depolama avantajları elde etmenizi sağlar:

  • Kodunuzun dışında merkezi yapılandırma.
  • Uygulamanızın tamamını yeniden dağıtmadan yapılandırmayı güncelleştirme.
  • Azure Uygulaması Hizmeti ve İşlevleri gibi hizmetlerle tümleştirme.

GitHub Action iş akışı, GitHub deposundaki otomatik bir işlemi tanımlar. GitHub deponuzdaki bir yapılandırma dosyasını Azure Uygulaması Yapılandırma deposuna aktarmak için, Uygulama Yapılandırması deponuza dosya aktarmaya yönelik tüm özellikleri sağlayan Azure CLI GitHub eylemini kullanın.

Kimlik Doğrulaması

Yapılandırmaları Azure Uygulaması Yapılandırma deponuza aktarmak için aşağıdaki yöntemlerden birini kullanarak kimlik doğrulaması yapabilirsiniz:

Microsoft Entra Id kullanma

Kimlik doğrulaması için önerilen yol, Azure kaynaklarınıza güvenli bir şekilde bağlanmanızı sağlayan Microsoft Entra Id kullanmaktır. Azure Login GitHub eylemini kullanarak kimlik doğrulama işlemini otomatikleştirebilirsiniz.

Azure Login, gizli anahtarlarla hizmet asıllarını veya Federated Identity Credential kullanarak OpenID Connect ile kimlik doğrulamanıza olanak tanır. Bu örnekte, Uygulama Yapılandırması deponuzda oturum açmak için OpenID Connect kullanacaksınız.

OpenID Connect ile Azure oturum açma özelliğini kullanma

OpenID Connect ile Azure Oturum Açma özelliğini kullanmak için şunları yapmanız gerekir:

  1. Hizmet sorumlusuyla bir Microsoft Entra uygulaması ayarlayın.
  2. GitHub eyleminizin Uygulama Yapılandırması deponuzu okumasına ve yazmasına izin vermek için Microsoft Entra uygulamanıza Uygulama Yapılandırması Veri Sahibi rolünü atayın.
  3. Oturum açma eylemine Microsoft Entra uygulamanızın İstemci Kimliği, Kiracı Kimliği ve Abonelik Kimliği bilgilerini sağlayın. Bu değerler doğrudan iş akışında sağlanabilir veya daha iyi güvenlik için GitHub gizli dizileri olarak depolanabilir. Aşağıdaki örnekte, bu değerler gizli değerler olarak ayarlanmıştır. GitHub'da gizli anahtarların kullanımı hakkında daha fazla bilgi için bkz. GitHub Actions'ta gizli anahtarları kullanma.

Bu GitHub Eylemi'ni kullanmaya başlamak için deponuza gidin ve Eylemler sekmesini seçin. Yeni iş akışı'nı ve ardından İş akışını kendiniz ayarlayın'ı seçin. Son olarak markette "Azure Oturum Açma" araması yapın. Bunu bulduktan sonra eyleme tıklayın ve sağlanan kod parçacığını iş akışı dosyanıza kopyalayın.

Eylem sekmesini seçin

Azure Oturum Açma Eylemi'ni seçin

Microsoft Entra Kimliğini kullanma örneği

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

Bağlantı dizesi kullanma

Alternatif olarak, bağlantı dizesi doğrudan Azure CLI komutuna geçirerek kimlik doğrulaması yapabilirsiniz. Bu yöntem, azure portalından bağlantı dizesi almayı ve komutlarınızda veya betiklerinizde kullanmayı içerir.

Başlamak için bağlantı dizesini, Azure portalında Uygulama Yapılandırması deponuzun Erişim Ayarları altında bulabilirsiniz.

Ardından bu bağlantı dizesi GitHub deponuzda gizli dizi değişkeni olarak ayarlayın. GitHub'da gizli dizileri kullanma hakkında daha fazla bilgi için bkz . GitHub Actions'ta gizli dizileri kullanma..

bağlantı dizesi kullanma örneği

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

Yapılandırma dosyası içeri aktarma

Bir yapılandırma dosyasını Uygulama Yapılandırması deponuza aktarmak için Azure CLI GitHub Eylemi'ni kullanırsınız. Bu GitHub Eylemi'ni kullanmaya başlamak için deponuza gidin ve Eylemler sekmesini seçin. Yeni iş akışı'nı ve ardından İş akışını kendiniz ayarlayın'ı seçin. Son olarak, market yerinde “Azure CLI Action” ifadesini arayın. Bunu bulduktan sonra eyleme tıklayın ve sağlanan kod parçacığını iş akışı dosyanıza kopyalayın.

Azure CLI Eylemi'ni seçin

Aşağıdaki örnekte, appsettings.json öğesine bir değişiklik gönderildiğinde yapılandırma dosyalarını bir Azure Uygulama Yapılandırması deposuna aktarmak için Azure CLI eylemini kullanırsınız. Bir geliştirici bir değişikliği appsettings.json konumuna gönderdiğinde, Azure CLI eylemine iletilen betik App Configuration deposunu yeni değerlerle günceller.

Bu iş akışının on bölümü, eylemin main dalına içeren bir push işlemi gerçekleştiğinde tetiklendiğini belirtir. İşler bölümünde, eylem tetiklendiğinde çalıştırılacak işler listelenir. Eylem, ilgili dosyaları teslim alır ve App Configuration deposunu güncelleştirir.

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

Azure Uygulama Yapılandırması CLI içeri aktarma komutları hakkında daha fazla bilgi için Azure Uygulama Yapılandırması CLI belgelerine bakın.

İçeri aktarmada dinamik etiket kullanma

Her içeri aktarma işleminde dinamik etiket kullanmak, yapılandırmalarınızın net ve hassas sürüm denetimini korumanın iyi bir yoludur. Uygulama Yapılandırması deponuza yapılan her içeri aktarmanın benzersiz olarak tanımlanmasını sağlayarak kod değişikliklerini yapılandırma güncelleştirmelerine eşlemeyi kolaylaştırır.

İçeri aktarmada dinamik etiket kullanma örneği

Aşağıdaki örnekte, içeri aktarılan tüm anahtar-değerler işleme karması temelinde benzersiz bir etikete sahip olacaktır.

 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

Sonraki adımlar

CLI içeri aktarma komutlarını kullanmayı öğrenmek için kapsamlı Azure CLI içeri aktarma komutları kılavuzumuzu inceleyin.

Farklı dosya içerik profilleri hakkında daha fazla bilgi için bkz: Yapılandırma dosyaları için Azure Uygulama Yapılandırması desteği.