Bagikan melalui


Mulai Cepat: Menggunakan GitHub Actions untuk menyambungkan ke Azure Database for MySQL - Server Fleksibel

Mulai menggunakan GitHub Actions dengan menggunakan alur kerja untuk menyebarkan pembaruan database ke server fleksibel Azure Database for MySQL.

Prasyarat

Anda akan membutuhkan:

Gambaran umum file alur kerja

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

File memiliki dua bagian:

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

Membuat info masuk 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

Menyalin string koneksi MySQL

Di portal Azure, buka instans server fleksibel Azure Database for MySQL Anda dan buka String koneksi Pengaturan>. Salin string koneksi ADO.NET. Ganti nilai tempat penampung untuk your_database dan your_password.

Penting

  • Untuk server tunggal Azure Database for MySQL, gunakan Uid=adminusername@servername. Perhatikan bahwa @servername diperlukan.
  • Untuk server fleksibel Azure Database for MySQL, gunakan Uid=adminusername tanpa @servername.

Anda akan menggunakan string koneksi sebagai rahasia GitHub.

Mengonfigurasi rahasia GitHub

Anda perlu memberikan ID Klien, ID Direktori (penyewa), dan ID Langganan aplikasi Anda ke 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 > Rahasia keamanan > dan variabel.

    Cuplikan layar menambahkan 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 (tenant) direktori

    Nota

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

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 mungkin terlihat seperti ini.

    name: CI
    
    on:
    push:
        branches: [ main ]
    pull_request:
        branches: [ main ]
    
  4. Ganti nama alur kerja sebagai MySQL 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: 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@v2
                with:
                  client-id: ${{ secrets.AZURE_CLIENT_ID }}
                  tenant-id: ${{ secrets.AZURE_TENANT_ID }}
                  subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
    
  5. Gunakan tindakan Penyebaran Azure MySQL untuk menyambungkan ke instans MySQL Anda. Ganti MYSQL_SERVER_NAME dengan nama server Anda. Anda harus memiliki file data MySQL bernama data.sql di tingkat akar repositori Anda.

    - uses: azure/mysql@v1
      with:
        server-name: MYSQL_SERVER_NAME
        connection-string: ${{ secrets.AZURE_MYSQL_CONNECTION_STRING }}
        sql-file: './data.sql'
    
  6. 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: 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@v2
                with:
                  client-id: ${{ secrets.AZURE_CLIENT_ID }}
                  tenant-id: ${{ secrets.AZURE_TENANT_ID }}
                  subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
              - 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
    

Meninjau penyebaran Anda

  1. Buka Tindakan untuk repositori GitHub Anda.

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

    Cuplikan layar Log Tindakan GitHub berjalan.

Membersihkan sumber daya

Saat database dan repositori Server Fleksibel Azure Database for MySQL Anda tidak lagi diperlukan, bersihkan sumber daya yang Anda sebarkan dengan menghapus grup sumber daya dan repositori GitHub Anda.

Langkah selanjutnya