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:

Section 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ı gidin ve Ayarlar> açın. ADO.NET bağlantı dizesini kopyalayın. ve your_databaseiçin your_password yer tutucu değerlerini değiştirin.

bağlantı dizesi GitHub gizli dizisi AZURE_SQL_CONNECTION_STRINGolarak ayarlayacaksınız.

GitHub gizli dizilerini yapılandırma

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'i> seçin.

    Gizli dizi ekleme ekran görüntüsü

  3. Yeni depo gizli dizisi'ni 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_IDve AZURE_TENANT_IDiçin AZURE_SUBSCRIPTION_IDgizli diziler 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 dizisi 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 gizli dizisini ekleme

  1. GitHub'da deponuza gidin.

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

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

  4. Yeni depo gizli dizisi'ni seçin.

  5. SQL bağlantı dizesi yapıştırın. Gizli diziye adını AZURE_SQL_CONNECTION_STRINGverin.

  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 kullanıma alır ve daha önce oluşturduğunuz GitHub gizli dizisini AZURE_CREDENTIALS 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 dizisini 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ıştırması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