Membangun dan menyebarkan proyek database di GitHub Actions dan Azure DevOps
Karena database adalah komponen integral dari solusi yang lebih besar, pengembang harus menemukan cara efektif untuk mengelola pengembangan database yang mirip dengan cara mereka menangani kode aplikasi. Tugas ini sangat menantang karena pengembangan database terjalin erat dengan data yang disimpan dalam database, menambahkan lapisan kompleksitas.
Untungnya, alat seperti GitHub Actions dan Azure DevOps Services menawarkan solusi yang kuat untuk mengelola kompleksitas ini. Kedua platform mendukung penyebaran DACPAC, yang menyederhanakan proses penyebaran perubahan database dengan mengemasnya ke dalam paket Komponen Aplikasi (DAC) tingkat data. Pendekatan ini tidak hanya memastikan konsistensi dan keandalan dalam penyebaran database tetapi juga terintegrasi dengan lancar dengan alur integrasi berkelanjutan dan penyebaran berkelanjutan (CI/CD), sehingga memudahkan pengembang untuk memelihara dan memperbarui database bersama kode aplikasi mereka.
Contoh dalam unit ini mengasumsikan bahwa Anda sudah memiliki:
- Langganan Azure dengan izin untuk membuat dan mengelola sumber daya.
-
Visual Studio Code diinstal dengan ekstensi berikut:
- Proyek SQL Database.
- Permintaan Pull GitHub.
- Akun GitHub dengan repositori GitHub privat yang dibuat sebagai Pemilik.
- Azure SQL Database yang dikonfigurasi dengan Izinkan akses layanan Azure diaktifkan. Mulai cepat: Membuat database tunggal Azure SQL Database.
Menggunakan Tindakan GitHub untuk menghubungkan ke Azure SQL Database
Anda dapat menggunakan GitHub Actions untuk menyambungkan ke Azure SQL Database Anda dan menerbitkan proyek SQL menggunakan file DACPAC.
Menggunakan tindakan GitHub untuk menyambungkan ke Azure SQL Database memiliki tiga langkah utama.
- Kloning repositori GitHub di Visual Studio Code.
- Buat Proyek Database di Visual Studio Code.
- Siapkan Integrasi Berkelanjutan (CI) dengan GitHub Actions.
Mengklon repositori GitHub
Anda dapat mengkloning repositori GitHub yang Anda buat dengan mengikuti langkah-langkah ini.
- Di Visual Studio Code, pilih Lihat>Palet Perintah.
- Di palet perintah, ketik Git: Kloning, lalu pilih.
- Masukkan URL repositori Anda dan pilih Kloning.
- Pilih atau buat folder untuk menyimpan file repositori Anda.
Membuat Proyek Database di Visual Studio Code
Di Visual Studio Code, siapkan proyek database baru dan simpan proyek di folder yang sama tempat Anda mengkloning repositori GitHub.
Untuk informasi selengkapnya tentang membuat Proyek Database di Visual Studio Code, lihat Pengembangan SQL Server dengan Visual Studio Code.
Setelah Anda membuat proyek database, tambahkan kode untuk mengubah Azure SQL Database Anda. Kemudian terapkan kembali ke repositori GitHub Anda untuk memastikan repositori tersebut dilacak dan diintegrasikan ke dalam sistem kontrol versi Anda.
Menyiapkan Integrasi Berkelanjutan dengan GitHub Actions
Untuk menyiapkan Integrasi Berkelanjutan (CI) dengan GitHub Actions, buat .yml file di /.github/workflows/ jalur di repositori Anda. File .yml memiliki dua bagian.
- Mengonfigurasikan autentikasi
- Membuat alur kerja GitHub
Autentikasi Siapkan mengonfigurasi rahasia GitHub, dan bagian kedua membuat alur kerja GitHub Actions.
Autentikasi
Pertama, Anda perlu membuat perwakilan layanan dengan az ad sp create-for-rbac perintah di Azure CLI. Gunakan Azure Cloud Shell di portal Azure untuk menjalankan kode Azure CLI berikut. Ganti tempat penampung dengan ID langganan, nama grup sumber daya, dan nama aplikasi Anda.
az ad sp create-for-rbac --name "myML" --role contributor --scopes /subscriptions/<subscription-id>/resourceGroups/<group-name> --json-auth
Output adalah objek JSON dengan kredensial penetapan peran. Simpan file saat disimpan sebagai rahasia GitHub.
Kedua, buat string koneksi SQL. Anda dapat menyalin ini dari portal Azure. Dari Azure SQL Database Anda, buka String koneksi Pengaturan>.
Salin ADO.NET string koneksi lalu ganti nilai tempat penampung untuk database Anda dan kata sandi Anda. string koneksi terlihat mirip dengan ini:
Server=tcp:my-sql-server.database.windows.net,1433;Initial Catalog={your-database};Persist Security Info=False;User ID={admin-name};Password={your-password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;
String koneksi ini juga akan disimpan sebagai rahasia GitHub.
Di repositori GitHub, Anda menambahkan rahasia di > - Buat rahasia baru bernama AZURE_CREDENTIALS untuk menyimpan teks JSON dan AZURE_SQL_CONNECTION_STRING menyimpan string koneksi.
Anda sekarang siap untuk membuat alur kerja Anda.
Catatan
Di lingkungan produksi, pertimbangkan untuk menggunakan Identitas Terkelola untuk Tindakan GitHub Anda untuk mengakses database alih-alih autentikasi SQL. Untuk informasi selengkapnya, lihat Identitas terkelola di Microsoft Entra untuk Azure SQL.
Membuat alur kerja GitHub
Di repositori GitHub Anda, pilih Tindakan dan Siapkan alur kerja sendiri. File main.yml kosong terbuka.
Anda sekarang dapat membangun file YAML Anda. Untuk sintaks dan panduan terperinci, lihat Alur Kerja untuk Tindakan GitHub. Misalnya, nama: tag menentukan nama alur kerja, sementara nilai on menentukan peristiwa yang memicu alur kerja untuk dijalankan.
Tip
Mulai Cepat untuk GitHub Actions membuat Anda siap dan berjalan dengan fitur tambahan tindakan GitHub.
Penyebaran Azure SQL Database dengan Azure DevOps Services
Anda juga dapat menyebarkan pembaruan ke Azure SQL Database menggunakan Azure DevOps Services. Untuk memulai, Anda memerlukan akun Azure DevOps Services, sistem kontrol versi (seperti Azure Repos atau GitHub), dan Visual Studio Code dengan ekstensi SQL Database terinstal.
Layanan Azure DevOps mencakup Azure Pipelines, yang secara otomatis membangun, menguji, dan menyebarkan kode. Dengan menggunakan Azure Pipelines, Anda dapat mendukung integrasi berkelanjutan dan penyebaran berkelanjutan (CI/CD) modifikasi Azure SQL Database dalam proyek Anda. Integrasi ini memastikan bahwa perubahan database Anda diterapkan secara konsisten dan andal.
Azure Pipelines terintegrasi dengan mulus dengan berbagai sistem kontrol versi, termasuk GitHub dan Azure Repos. Azure Pipelines memungkinkan Anda menjalankan skrip SQL sebagai bagian dari alur, menggunakan skrip Azure PowerShell untuk membuat dan menghapus aturan firewall di Azure, memastikan manajemen database yang aman dan efisien.
Untuk informasi selengkapnya tentang opsi penyebaran Azure SQL Database, lihat Penyebaran database Azure SQL dalam dokumentasi untuk Layanan Azure DevOps.