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 Oturum Açma, gizli dizilerle hizmet sorumlularını veya Federasyon Kimliği Kimlik Bilgileri ile OpenID Connect'i kullanarak kimlik doğrulaması yapmanı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 dizi olarak ayarlanmıştır. GitHub'da gizli dizileri kullanma hakkında daha fazla bilgi için bkz . GitHub Actions'ta gizli dizileri 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ı dizesi Azure portalındaki Uygulama Yapılandırması mağazanızın 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 markette "Azure CLI Eylemi" araması yapı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, bir değişiklik gönderildiğinde yapılandırma dosyalarını bir Azure Uygulaması Yapılandırma deposuna aktarmak için Azure CLI eylemini appsettings.jsonkullanırsınız. Geliştirici bir değişikliği adresine appsettings.jsongönderdiğinde, Azure CLI eylemine geçirilen betik Uygulama Yapılandırması deposunu yeni değerlerle güncelleştirir.

Bu iş akışının on bölümü, eylemin ana dalı içeren bir gönderimde tetiklendiğini appsettings.json belirtir. İşler bölümünde, eylem tetiklendiğinde çalıştırılacak işler listelenir. Eylem, ilgili dosyaları kullanıma alır ve Uygulama Yapılandırması depoyu 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 <your-app-configuration-store-endpoint> --auth-mode login -s file --path appsettings.json --format json --yes

Azure Uygulaması Yapılandırma CLI'sı içeri aktarma komutları hakkında daha fazla bilgi için Azure Uygulaması Konfifguration 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 <your-app-configuration-store-endpoint> --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çeriği profilleri hakkında daha fazla bilgi edinmek için bkz. yapılandırma dosyaları için yapılandırma desteği Azure Uygulaması.