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

ŞUNLAR IÇIN GEÇERLIDIR: PostgreSQL için Azure Veritabanı - Tek Sunucu PostgreSQL için Azure Veritabanı - Esnek Sunucu

Önemli

PostgreSQL için Azure Veritabanı - Tek Sunucu kullanımdan kaldırma yolundadır. PostgreSQL için Azure Veritabanı - Esnek Sunucu'ya yükseltmenizi kesinlikle öneririz. PostgreSQL için Azure Veritabanı - Esnek Sunucu'ya geçiş hakkında daha fazla bilgi için bkz. PostgreSQL için Azure Veritabanı Tek Sunucuya ne oluyor?.

Veritabanı güncelleştirmelerini PostgreSQL için Azure Veritabanı esnek sunucuya 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. 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>",
    (...)
  }

PostgreSQL için Azure Veritabanı esnek sunucu bağlantı dizesi kopyalama

Azure portalında PostgreSQL için Azure Veritabanı esnek sunucu örneğinize gidin ve Ayarlar> Bağlan ion dizelerini 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 buna benzer.

Önemli

  • Tek PostgreSQL için Azure Veritabanı sunucu için kullanın user=adminusername@servername . @servername gerekli olduğuna dikkat edin.
  • esnek PostgreSQL için Azure Veritabanı sunucu için, olmadan @servernamekullanınuser= adminusername.
psql host={servername.postgres.database.azure.com} port=5432 dbname={your_database} user={adminusername} password={your_database_password} sslmode=require

bağlantı dizesi GitHub gizli dizisi olarak kullanırsınız.

GitHub gizli dizilerini yapılandırma

  1. GitHub'da deponuza gidin.

  2. Gezinti menüsünde Ayarlar 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ı PostgreSQL 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 dizilerini kullanarak Azure'da kimlik doğrulaması yapar.

    name: PostgreSQL for GitHub Actions
    
    on:
    push:
        branches: [ main ]
    pull_request:
        branches: [ main ]
    
    jobs:
    build:
        runs-on: ubuntu-latest
        steps:
        - uses: actions/checkout@v1
        - uses: azure/login@v1
        with:
            creds: ${{ secrets.AZURE_CREDENTIALS }}
    
  5. PostgreSQL için Azure Veritabanı esnek sunucu örneğine bağlanmak için Azure PostgreSQL Dağıtımı eylemini kullanın. değerini sunucunuzun adıyla değiştirin POSTGRESQL_SERVER_NAME . Deponuzun kök düzeyinde adlı data.sql PostgreSQL için Azure Veritabanı esnek bir sunucu veri dosyanız olmalıdır.

     - uses: azure/postgresql@v1
       with:
        connection-string: ${{ secrets.AZURE_POSTGRESQL_CONNECTION_STRING }}
        server-name: POSTGRESQL_SERVER_NAME
        plsql-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: PostgreSQL for GitHub Actions
    
    on:
    push:
        branches: [ main ]
    pull_request:
        branches: [ main ]
    
    
    jobs:
    build:
        runs-on: ubuntu-latest
        steps:
        - uses: actions/checkout@v1
        - uses: azure/login@v1
        with:
            client-id: ${{ secrets.AZURE_CREDENTIALS }}
    
    - uses: azure/postgresql@v1
      with:
        server-name: POSTGRESQL_SERVER_NAME
        connection-string: ${{ secrets.AZURE_POSTGRESQL_CONNECTION_STRING }}
        plsql-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 günlüğü çalıştırılır.

Kaynakları temizleme

PostgreSQL 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ımlar