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 tanım, iş akışını oluşturan çeşitli adımları ve parametreleri içerir.

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

Section Görevler
Kimlik Doğrulaması 1.1. Dağıtım kimlik bilgileri oluşturun.
Dağıtma 1. Veritabanını dağıtın.

Dağıtım kimlik bilgileri oluşturma

Azure CLI'da az ad sp create-for-rbac komutuyla bir hizmet sorumlusu oluşturun. Azure portalında veya Deneyin düğmesini seçerek bu komutu Azure Cloud Shell ile çalıştırın.

az ad sp create-for-rbac --name "myML" --role contributor \
                            --scopes /subscriptions/<subscription-id>/resourceGroups/<group-name> \
                            --json-auth

parametresi --json-auth Azure CLI sürümlerinde >= 2.51.0 kullanılabilir. Bu --sdk-auth kullanımdan önceki sürümler kullanımdan kaldırma uyarısıyla kullanılır.

Yukarıdaki örnekte yer tutucuları abonelik kimliğiniz, kaynak grubu adınız ve uygulama adınızla değiştirin. Çıktı, Aşağıdakine benzer şekilde App Service uygulamanıza erişim sağlayan rol ataması kimlik bilgilerine sahip bir JSON nesnesidir. Bu JSON nesnesini daha sonra için kopyalayın.

  {
    "clientId": "<GUID>",
    "clientSecret": "<GUID>",
    "subscriptionId": "<GUID>",
    "tenantId": "<GUID>",
    (...)
  }

SQL bağlantı dizesi kopyalama

Azure portalında Azure SQL Veritabanı gidin ve Ayarlar>Bağlantı dizeleri'ni açın. ADO.NET bağlantı dizesini kopyalayın. ve your_passwordiçin your_database 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

  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.

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

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

  5. Azure CLI komutundaki JSON çıkışının tamamını gizli dizinin değer alanına yapıştırın. Gizli diziye adını AZURE_CREDENTIALSverin.

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

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@v1
               with:
                creds: ${{ secrets.AZURE_CREDENTIALS }}
    

  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
      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@v1
               with:
                creds: ${{ secrets.AZURE_CREDENTIALS }}
             - uses: azure/sql-action@v2
               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