Aracılığıyla paylaş


Hızlı Başlangıç: MySQL için Azure Veritabanı - Esnek Sunucu'ya bağlanmak için GitHub Actions'ı kullanma

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

Önkoşullar

Şunlara ihtiyacınız var:

İş 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. 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>",
    (...)
  }

MySQL bağlantı dizesi kopyalama

Azure portalında, MySQL için Azure Veritabanı esnek sunucu örneğinize 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.

Önemli

  • Tek MySQL için Azure Veritabanı sunucu için Uid=adminusername@servername kullanın. @servername gerekli olduğuna dikkat edin.
  • esnek MySQL için Azure Veritabanı sunucu için, olmadan @servernameUid=adminusername kullanın.

bağlantı dizesi GitHub gizli dizisi olarak kullanacaksı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.

İş 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: CI
    
    on:
    push:
        branches: [ main ]
    pull_request:
        branches: [ main ]
    
  4. İş akışınızı MySQL 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: MySQL 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 }}
    
  5. MySQL örneğine bağlanmak için Azure MySQL Dağıtımı eylemini kullanın. değerini sunucunuzun adıyla değiştirin MYSQL_SERVER_NAME . Deponuzun kök düzeyinde adlı data.sql bir MySQL veri dosyanız olmalıdır.

    - uses: azure/mysql@v1
      with:
        server-name: MYSQL_SERVER_NAME
        connection-string: ${{ secrets.AZURE_MYSQL_CONNECTION_STRING }}
        sql-file: './data.sql'
    
  6. Azure oturumunu kapatmak için bir eylem 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: MySQL 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/mysql@v1
                with:
                  server-name: MYSQL_SERVER_NAME
                  connection-string: ${{ secrets.AZURE_MYSQL_CONNECTION_STRING }}
                  sql-file: './data.sql'
    
                # 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 Actions çalıştırma günlüğünün ekran görüntüsü.

Kaynakları temizleme

MySQL için Azure Veritabanı esnek sunucu veritabanınız ve deponuz artık gerekli olmadığında, kaynak grubunu ve GitHub deponuzu silerek dağıttığınız kaynakları temizleyin.

Sonraki adım