Aracılığıyla paylaş


Azure SQL Veritabanı bağlanmak için GitHub Actions'ı kullanma

Şunlar için geçerlidir:Azure SQL Veritabanı

veritabanı güncelleştirmelerini Azure SQL Veritabanı dağıtmak için bir iş akışı kullanarak GitHub Actions'ı kullanmaya başlayın.

Önkoşullar

Şunlara sahip olmanız gerekir:

İş akışı dosyasına genel bakış

GitHub Actions iş akışı, deponuzdaki yoldaki /.github/workflows/ bir YAML (.yml) dosyası tarafından tanımlanır. Bu dosyada iş akışını oluşturan adımlar ve parametreler bulunur.

Dosyanın iki bölümü vardır:

Bölüm Görevler
Kimlik Doğrulaması 1. Dağıtım kimlik bilgileri oluşturun.
Dağıtma 2. Veritabanını dağıtın.

Dağıtım kimlik bilgileri oluşturma

OIDC ile Azure Oturum Açma eylemini kullanmak için, Microsoft Entra uygulamasında veya kullanıcı tarafından atanan yönetilen kimlikte federasyon kimlik bilgilerini yapılandırmanız gerekir.

Seçenek 1: Microsoft Entra uygulaması

Seçenek 2: Kullanıcı tarafından atanan yönetilen kimlik

SQL bağlantı dizesi kopyalama

Azure portalında Azure SQL Veritabanına gidin ve AyarlarBağlantı dizeleri kısmını açın. ADO.NET bağlantı dizesini kopyalayın. Yer tutucu değerlerini your_database ve your_password için değiştirin.

Bağlantı dizesini GitHub sırrı AZURE_SQL_CONNECTION_STRING olarak ayarlayacaksınız.

GitHub gizli anahtarlarını yapılandırın

Oturum açma eylemine uygulamanızın İstemci Kimliğini, Dizin (kiracı) Kimliğini ve Abonelik Kimliğini sağlamanız gerekir. Bu değerler doğrudan iş akışında sağlanabilir veya GitHub gizli dizilerinde depolanabilir ve iş akışınızda başvurulabilir. Değerleri GitHub gizli dizileri olarak kaydetmek daha güvenli bir seçenektir.

  1. GitHub'da deponuza gidin.

  2. Güvenlik Gizli Dizileri ve değişkenler> Eylemler> seçin.

    Gizli ekleme ekran görüntüsü

  3. Yeni depo gizli anahtarı'nı seçin.

    Uyarı

    Genel depolarda iş akışı güvenliğini geliştirmek için depo gizli dizileri yerine ortam gizli dizilerini kullanın. Eğer ortam onay gerektiriyorsa, biri gerekli gözden geçirenlerden onaylayana kadar görev ortamın gizli verilerine erişemez.

  4. AZURE_CLIENT_ID, AZURE_TENANT_ID ve AZURE_SUBSCRIPTION_ID için gizli öğeler oluşturun. Bu değerleri GitHub gizli dizileriniz için Microsoft Entra uygulamanızdan veya kullanıcı tarafından atanan yönetilen kimlikten kopyalayın:

    GitHub gizli anahtar Microsoft Entra uygulaması veya kullanıcı tarafından atanan yönetilen kimlik
    AZURE_CLIENT_ID Müşteri Kimliği
    AZURE_SUBSCRIPTION_ID Abonelik Kimliği
    AZURE_TENANT_ID Dizin (kiracı) kimliği

    Uyarı

    Güvenlik nedeniyle, değerleri doğrudan iş akışına geçirmek yerine GitHub Gizli Dizilerini kullanmanızı öneririz.

SQL bağlantı dizesi sırrını ekleyin

  1. GitHub'da deponuza gidin.

  2. Gezinti menüsünde Ayarlar'a gidin.

  3. Güvenlik Gizli Dizileri ve değişkenler> Eylemler> seçin.

  4. Yeni depo gizli anahtarı'nı seçin.

  5. SQL bağlantı dizesi yapıştırın. Gizliye adını AZURE_SQL_CONNECTION_STRING verin.

  6. Add secret (Gizli dizi ekle) öğesini seçin.

İş akışınızı ekleme

  1. GitHub deponuz için Eylemler'e gidin.

  2. İş akışınızı kendiniz ayarlayın'ı seçin.

  3. İş akışı dosyanızın bölümünden on: sonra her şeyi silin. Örneğin, kalan iş akışınız şöyle görünebilir.

    name: SQL for GitHub Actions
    
    on:
        push:
            branches: [ main ]
        pull_request:
            branches: [ main ]
    
  4. İş akışınızı SQL for GitHub Actions yeniden adlandırın ve kullanıma alma ve oturum açma eylemlerini ekleyin. Bu eylemler site kodunuzu çekip daha önce oluşturduğunuz AZURE_CREDENTIALS GitHub sırrını kullanarak Azure'da kimlik doğrulaması yapar.

        name: SQL for GitHub Actions
    
        on:
            push:
                branches: [ main ]
            pull_request:
                branches: [ main ]
    
        jobs:
            build:
                runs-on: windows-latest
                steps:
                 - uses: actions/checkout@v1
                 - uses: azure/login@v2
                   with:
                    client-id: ${{ secrets.AZURE_CLIENT_ID }}
                    tenant-id: ${{ secrets.AZURE_TENANT_ID }}
                    subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
    

  1. SQL örneğine bağlanmak için Azure SQL Dağıtımı eylemini kullanın. Deponuzun kök düzeyinde bir dacpac paketine (Database.dacpac) sahip olmanız gerekir. Daha önce oluşturduğunuz GitHub gizli anahtarını AZURE_SQL_CONNECTION_STRING kullanın.

    - uses: azure/sql-action@v2.3
      with:
        connection-string: ${{ secrets.AZURE_SQL_CONNECTION_STRING }}
        path: './Database.dacpac'
        action: 'publish'
    
  2. Azure oturumunuzu kapatma eylemi ekleyerek iş akışınızı tamamlayın. Tamamlanmış iş akışı aşağıdadır. Dosya, deponuzun klasöründe görünür .github/workflows .

        name: SQL for GitHub Actions
    
        on:
            push:
                branches: [ main ]
            pull_request:
                branches: [ main ]
    
        jobs:
            build:
                runs-on: windows-latest
                steps:
                 - uses: actions/checkout@v1
                 - uses: azure/login@v2
                   with:
                    client-id: ${{ secrets.AZURE_CLIENT_ID }}
                    tenant-id: ${{ secrets.AZURE_TENANT_ID }}
                    subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
             - uses: azure/sql-action@v2.3
               with:
                connection-string: ${{ secrets.AZURE_SQL_CONNECTION_STRING }}
                path: './Database.dacpac'
                action: 'publish'
    
                # Azure logout 
                 - name: logout
                   run: |
                     az logout
    

Dağıtımınızı gözden geçirme

  1. GitHub deponuz için Eylemler'e gidin.

  2. İş akışınızın çalışmasının ayrıntılı günlüklerini görmek için ilk sonucu açın.

    GitHub eylemlerinin günlüğü çalışıyor

Kaynakları temizleme

Azure SQL veritabanınız ve deponuz artık gerekli olmadığında, kaynak grubunu ve GitHub deponuzu silerek dağıttığınız kaynakları temizleyin.

Sonraki adımlar