Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Mulai menggunakan GitHub Actions dengan menggunakan alur kerja untuk menyebarkan pembaruan database ke server fleksibel Azure Database for MySQL.
Prasyarat
Anda akan membutuhkan:
Akun Azure dengan langganan aktif. Buat akun secara gratis.
Akun GitHub. Jika Anda tidak memiliki akun GitHub, daftar secara gratis.
Repositori GitHub dengan data sampel (
data.sql).Penting
Mulai cepat ini mengasumsikan bahwa Anda telah mengkloning repositori GitHub ke komputer sehingga Anda dapat menambahkan alamat IP terkait ke aturan firewall, jika perlu.
Instans Azure Database untuk MySQL Server Fleksibel.
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
- Buat aplikasi Microsoft Entra dengan principal layanan menggunakan portal Azure, Azure CLI, atau Azure PowerShell.
- Salin nilai untuk ID Klien, ID Langganan, dan ID Direktori (penyewa) untuk digunakan nanti di alur kerja GitHub Actions Anda.
- Tetapkan peran yang sesuai untuk perwakilan layanan Anda dengan portal Azure, Azure CLI, atau Azure PowerShell.
- Mengonfigurasi kredensial identitas federasi pada aplikasi Microsoft Entra untuk mempercayai token yang dikeluarkan oleh GitHub Actions ke repositori GitHub Anda.
Opsi 2: Identitas terkelola yang ditetapkan pengguna
- Buat identitas terkelola yang ditetapkan oleh pengguna.
- Salin nilai untuk ID Klien, ID Langganan, dan ID Direktori (penyewa) untuk digunakan nanti di alur kerja GitHub Actions Anda.
- Tetapkan peran yang sesuai ke identitas terkelola yang ditetapkan penggunaAnda.
- Konfigurasikan kredensial identitas federasi pada identitas terkelola yang ditetapkan pengguna untuk mempercayai token yang dikeluarkan oleh GitHub Actions ke repositori GitHub Anda.
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.
Di GitHub, buka repositori Anda.
Pilih > Rahasia keamanan > dan variabel.
Pilih Rahasia repositori baru.
Membuat rahasia untuk
AZURE_CLIENT_ID,AZURE_TENANT_ID, danAZURE_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
Buka Tindakan untuk repositori GitHub Anda.
Pilih Siapkan alur kerja Anda sendiri.
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 ]Ganti nama alur kerja sebagai
MySQL for GitHub Actionsdan tambahkan tindakan selesai dan masuk. Tindakan ini memeriksa kode situs Anda dan mengautentikasi dengan Azure menggunakanAZURE_CREDENTIALSrahasia 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 }}Gunakan tindakan Penyebaran Azure MySQL untuk menyambungkan ke instans MySQL Anda. Ganti
MYSQL_SERVER_NAMEdengan nama server Anda. Anda harus memiliki file data MySQL bernamadata.sqldi 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'Selesaikan alur kerja Anda dengan menambahkan tindakan untuk keluar dari Azure. Berikut alur kerja yang telah selesai. File muncul di
.github/workflowsfolder 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
Buka Tindakan untuk repositori GitHub Anda.
Buka hasil pertama untuk melihat log terperinci dari eksekusi alur kerja Anda.
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.