Bagikan melalui


Menggunakan Tindakan GitHub untuk menghubungkan ke Azure SQL Database

Berlaku untuk:Azure SQL Database

Memulai dengan Tindakan GitHub dengan menggunakan alur kerja untuk menyebarkan pembaruan database ke Azure SQL Database.

Prasyarat

Anda memerlukan:

Gambaran umum file alur kerja

Alur kerja GitHub Actions ditentukan oleh file YAML (.yml) di jalur /.github/workflows/ di repositori Anda. File ini memiliki langkah-langkah dan parameter yang membentuk alur kerja.

File memiliki dua bagian:

Bagian Tugas
Autentikasi 1. Buat info masuk penyebaran.
Sebarkan 2. Sebarkan database.

Menghasilkan kredensial penyebaran

Untuk menggunakan tindakan Azure Login dengan OIDC, Anda perlu mengonfigurasi kredensial identitas gabungan pada aplikasi Microsoft Entra atau identitas terkelola yang ditetapkan pengguna.

Opsi 1: aplikasi Microsoft Entra

Opsi 2: Identitas terkelola yang ditetapkan pengguna

Salin string koneksi SQL

Di portal Microsoft Azure, buka Azure SQL Database Anda dan buka Pengaturan>String koneksi. Salin string koneksi ADO.NET. Ganti nilai tempat penampung untuk your_database dan your_password.

Anda akan mengatur string koneksi sebagai rahasia GitHub, AZURE_SQL_CONNECTION_STRING.

Mengonfigurasi rahasia GitHub

Anda perlu memberikan ID Klien aplikasi Anda , ID Direktori (penyewa) , dan ID Langganan untuk tindakan masuk. Nilai ini bisa disediakan secara langsung di alur kerja atau bisa disimpan di rahasia GitHub dan direferensikan dalam alur kerja Anda. Menyimpan nilai sebagai GitHub rahasia adalah opsi yang lebih aman.

  1. Di GitHub, buka repositori Anda.

  2. Pilih Keamanan > Rahasia dan variabel > Tindakan.

    Cuplikan layar penambahan rahasia

  3. Pilih Rahasia repositori baru.

    Nota

    Untuk meningkatkan keamanan alur kerja di repositori publik, gunakan rahasia lingkungan alih-alih rahasia repositori. Jika lingkungan memerlukan persetujuan, pekerjaan tidak dapat mengakses rahasia lingkungan hingga salah satu peninjau yang diperlukan menyetujuinya.

  4. Membuat rahasia untuk AZURE_CLIENT_ID, AZURE_TENANT_ID, dan AZURE_SUBSCRIPTION_ID. Salin nilai-nilai ini dari aplikasi Microsoft Entra atau identitas terkelola yang ditetapkan pengguna untuk rahasia GitHub Anda:

    Rahasia GitHub Aplikasi Microsoft Entra atau identitas terkelola yang ditetapkan pengguna
    AZURE_CLIENT_ID ID Pelanggan
    AZURE_SUBSCRIPTION_ID ID Langganan
    AZURE_TENANT_ID ID Direktori (Penyewa)

    Nota

    Untuk alasan keamanan, sebaiknya gunakan Rahasia GitHub daripada meneruskan nilai langsung ke alur kerja.

Menambahkan rahasia string koneksi SQL

  1. Di GitHub, buka repositori Anda.

  2. Buka Pengaturan di menu navigasi.

  3. Pilih Keamanan > Rahasia dan variabel > Tindakan.

  4. Pilih Rahasia repositori baru.

  5. Tempelkan string koneksi SQL Anda. Namai rahasia sebagai AZURE_SQL_CONNECTION_STRING.

  6. Pilih Tambahkan rahasia.

Menambahkan alur kerja Anda

  1. Buka Tindakan untuk repositori GitHub Anda.

  2. Pilih Siapkan alur kerja Anda sendiri.

  3. Hapus semuanya setelah bagian on: dari file alur kerja Anda. Misalnya, alur kerja Anda yang tersisa dapat terlihat seperti ini.

    name: SQL for GitHub Actions
    
    on:
        push:
            branches: [ main ]
        pull_request:
            branches: [ main ]
    
  4. Ganti nama alur kerja sebagai SQL for GitHub Actions dan tambahkan tindakan selesai dan masuk. Tindakan ini memeriksa kode situs Anda dan mengautentikasi dengan Azure menggunakan AZURE_CREDENTIALS rahasia GitHub yang Anda buat sebelumnya.

        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. Gunakan tindakan Penyebaran Azure SQL untuk menyambungkan ke instans SQL Anda. Anda harus memiliki paket dacpac (Database.dacpac) di tingkat dasar repositori Anda. AZURE_SQL_CONNECTION_STRING Gunakan rahasia GitHub yang Anda buat sebelumnya.

    - uses: azure/sql-action@v2.3
      with:
        connection-string: ${{ secrets.AZURE_SQL_CONNECTION_STRING }}
        path: './Database.dacpac'
        action: 'publish'
    
  2. Selesaikan alur kerja Anda dengan menambahkan tindakan untuk keluar dari Azure. Berikut alur kerja yang telah selesai. File muncul di .github/workflows folder repositori Anda.

        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
    

Tinjau penerapan Anda

  1. Buka Tindakan untuk repositori GitHub Anda.

  2. Buka hasil pertama untuk melihat log terperinci dari eksekusi alur kerja Anda.

    Log jalannya aksi GitHub

Membersihkan sumber daya

Saat database dan repositori Azure SQL Anda tidak lagi diperlukan, hapus sumber daya yang Anda terapkan dengan menghapus grup sumber daya dan repositori GitHub Anda.

Langkah berikutnya