Penerbitan otomatis untuk integrasi dan pengiriman berkelanjutan (CI/CD)
BERLAKU UNTUK: Azure Data Factory
Azure Synapse Analytics
Tip
Cobalah Data Factory di Microsoft Fabric, solusi analitik all-in-one untuk perusahaan. Microsoft Fabric mencakup semuanya mulai dari pergerakan data hingga ilmu data, analitik real time, kecerdasan bisnis, dan pelaporan. Pelajari cara memulai uji coba baru secara gratis!
Catatan
Synapse Analytics juga mendukung CI/CD. Lihat dokumentasi Synapse Analytics CI/CD untuk informasi selengkapnya.
Gambaran Umum
Integrasi berkelanjutan adalah praktik pengujian setiap perubahan yang dilakukan pada basis kode Anda secara otomatis. Sedini mungkin, pengiriman berkelanjutan mengikuti pengujian yang terjadi selama integrasi berkelanjutan dan mendorong perubahan pada sistem pentahapan atau produksi.
Di Azure Data Factory, CI/CD berarti memindahkan alur Data Factory dari satu lingkungan, seperti pengembangan, pengujian, dan produksi, ke lingkungan lain. Data Factory menggunakan templat Azure Resource Manager (templat ARM) untuk menyimpan konfigurasi berbagai entitas Data Factory Anda, seperti alur, himpunan data, dan aliran data.
Ada dua metode yang disarankan untuk mendukung pabrik data ke lingkungan lain:
- Penyebaran otomatis menggunakan integrasi Data Factory dengan Azure Pipelines.
- Mengunggah templat ARM secara manual dengan menggunakan integrasi pengalaman pengguna Data Factory dengan Azure Resource Manager.
Untuk informasi selengkapnya, lihat Integrasi dan pengiriman berkelanjutan di Azure Data Factory.
Artikel ini berfokus pada peningkatan penyebaran berkelanjutan dan fitur publikasi otomatis untuk CI/CD.
Peningkatan penyebaran berkelanjutan
Fitur penerbitan otomatis mengambil fitur template Validate all dan Export ARM dari pengalaman pengguna Pabrik Data dan membuat logika dapat dikonsumsi melalui paket npm yang tersedia untuk umum @microsoft/azure-data-factory-utilities. Untuk alasan ini, Anda dapat secara terprogram memicu tindakan ini alih-alih harus pergi ke UI Data Factory dan memilih tombol secara manual. Kemampuan ini akan memberikan alur CI/CD Anda pengalaman integrasi berkelanjutan yang lebih benar.
Catatan
Pastikan untuk menggunakan node versi 18.x dan versi yang kompatibel untuk menghindari kesalahan yang dapat terjadi karena ketidakcocokan paket dengan versi yang lebih lama.
Alur CI/CD saat ini
- Setiap pengguna membuat perubahan di cabang privat mereka.
- Pendorongan ke master tidak diperbolehkan. Pengguna harus membuat permintaan tarik untuk membuat perubahan.
- Pengguna harus memuat UI Data Factory dan memilih Publikasikan untuk menyebarkan perubahan ke Data Factory dan membuat templat ARM di cabang publikasi.
- Alur Rilis DevOps dikonfigurasi untuk membuat rilis baru dan menyebarkan templat ARM setiap kali perubahan baru didorong ke cabang publikasi.
Langkah manual
Dalam alur CI/CD saat ini, pengalaman pengguna adalah perantara untuk membuat templat ARM. Akibatnya, pengguna harus pergi ke UI Data Factory dan secara manual memilih Publikasikan untuk memulai pembuatan templat ARM dan meletakkannya di cabang publikasi.
Alur CI/CD baru
- Setiap pengguna membuat perubahan di cabang privat mereka.
- Pendorongan ke master tidak diperbolehkan. Pengguna harus membuat permintaan tarik untuk membuat perubahan.
- Penyusunan alur Azure DevOps dipicu setiap kali penerapan baru dibuat ke master. Ini memvalidasi sumber daya dan membuat templat ARM sebagai artefak jika validasi berhasil.
- Alur Rilis DevOps dikonfigurasi untuk membuat rilis baru dan menyebarkan templat ARM setiap kali build baru tersedia.
Apa yang berubah?
- Kita sekarang memiliki proses build yang menggunakan alur build DevOps.
- Alur build menggunakan paket ADFUtilities NPM, yang akan memvalidasi semua sumber daya dan membuat templat ARM. Templat ini dapat berupa templat tunggal dan ditautkan.
- Alur build bertanggung jawab untuk memvalidasi sumber daya Data Factory dan membuat templat ARM alih-alih UI Data Factory (tombol Publikasikan).
- Definisi rilis DevOps sekarang akan mengonsumsi alur build baru ini alih-alih artefak Git.
Catatan
Anda dapat terus menggunakan mekanisme yang ada, yaitu cabang adf_publish
, atau Anda dapat menggunakan alur baru. Keduanya didukung.
Ikhtisar paket
Dua perintah saat ini tersedia dalam paket:
- Ekspor templat ARM
- Memvalidasi
Ekspor templat ARM
Jalankan npm run build export <rootFolder> <factoryId> [outputFolder]
untuk mengekspor templat ARM dengan menggunakan sumber daya folder tertentu. Perintah ini juga menjalankan pemeriksaan validasi sebelum membuat templat ARM. Berikut adalah contoh menggunakan grup sumber daya bernama testResourceGroup:
npm run build export C:\DataFactories\DevDataFactory /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testResourceGroup/providers/Microsoft.DataFactory/factories/DevDataFactory ArmTemplateOutput
RootFolder
adalah bidang wajib yang mewakili tempat sumber daya Data Factory berada.FactoryId
adalah bidang wajib yang mewakili ID sumber daya Data Factory dalam format/subscriptions/<subId>/resourceGroups/<rgName>/providers/Microsoft.DataFactory/factories/<dfName>
.OutputFolder
adalah parameter opsional yang menentukan jalur relatif untuk menyimpan templat ARM yang dibuat.
Kemampuan untuk menghentikan/memulai hanya pemicu yang diperbarui sekarang tersedia secara umum dan digabungkan ke dalam perintah yang ditunjukkan di atas.
Catatan
Templat ARM yang dibuat tidak dipublikasikan ke versi langsung pabrik. Penyebaran harus dilakukan dengan menggunakan alur CI/CD.
Memvalidasi
Jalankan npm run build validate <rootFolder> <factoryId>
untuk memvalidasi semua sumber daya folder tertentu. Berikut contohnya:
npm run build validate C:\DataFactories\DevDataFactory /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testResourceGroup/providers/Microsoft.DataFactory/factories/DevDataFactory
RootFolder
adalah bidang wajib yang mewakili tempat sumber daya Data Factory berada.FactoryId
adalah bidang wajib yang mewakili ID sumber daya Data Factory dalam format/subscriptions/<subId>/resourceGroups/<rgName>/providers/Microsoft.DataFactory/factories/<dfName>
.
Membuat alur pipa Azure
Saat paket npm dapat digunakan dengan berbagai cara, salah satu manfaat utama sedang digunakan melalui Azure Pipeline. Pada setiap penggabungan ke cabang kolaborasi Anda, alur dapat dipicu yang terlebih dahulu memvalidasi semua kode, kemudian mengekspor templat ARM ke artefak build yang dapat digunakan oleh alur rilis. Perbedaannya dengan proses CI/CD saat ini adalah bahwa Anda akan mengarahkan alur rilis Anda pada artefak ini alih-alih cabang adf_publish
yang ada.
Ikuti langkah-langkah berikut untuk memulai:
Buka proyek Azure DevOps, dan buka Alur. Pilih Alur Baru.
Pilih repositori tempat Anda ingin menyimpan skrip YAML alur Anda. Sebaiknya simpan dalam folder build di repositori yang sama dengan sumber daya Data Factory Anda. Pastikan ada file package.json di repositori yang berisi nama paket, seperti yang diperlihatkan dalam contoh berikut:
{ "scripts":{ "build":"node node_modules/@microsoft/azure-data-factory-utilities/lib/index" }, "dependencies":{ "@microsoft/azure-data-factory-utilities":"^1.0.0" } }
Anda dapat memilih Alur pemula. Jika Anda telah mengunggah atau menggabungkan file YAML, seperti yang diperlihatkan dalam contoh berikut, Anda juga dapat mengarahkan langsung ke sana dan mengeditnya.
# Sample YAML file to validate and export an ARM template into a build artifact # Requires a package.json file located in the target repository trigger: - main #collaboration branch pool: vmImage: 'ubuntu-latest' steps: # Installs Node and the npm packages saved in your package.json file in the build - task: UseNode@1 inputs: version: '18.x' displayName: 'Install Node.js' - task: Npm@1 inputs: command: 'install' workingDir: '$(Build.Repository.LocalPath)/<folder-of-the-package.json-file>' #replace with the package.json folder verbose: true displayName: 'Install npm package' # Validates all of the Data Factory resources in the repository. You'll get the same validation errors as when "Validate All" is selected. # Enter the appropriate subscription and name for the source factory. Either of the "Validate" or "Validate and Generate ARM temmplate" options are required to perform validation. Running both is unnecessary. - task: Npm@1 inputs: command: 'custom' workingDir: '$(Build.Repository.LocalPath)/<folder-of-the-package.json-file>' #replace with the package.json folder customCommand: 'run build validate $(Build.Repository.LocalPath)/<Root-folder-from-Git-configuration-settings-in-ADF> /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/<Your-ResourceGroup-Name>/providers/Microsoft.DataFactory/factories/<Your-Factory-Name>' displayName: 'Validate' # Validate and then generate the ARM template into the destination folder, which is the same as selecting "Publish" from the UX. # The ARM template generated isn't published to the live version of the factory. Deployment should be done by using a CI/CD pipeline. - task: Npm@1 inputs: command: 'custom' workingDir: '$(Build.Repository.LocalPath)/<folder-of-the-package.json-file>' #replace with the package.json folder customCommand: 'run build export $(Build.Repository.LocalPath)/<Root-folder-from-Git-configuration-settings-in-ADF> /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/<Your-ResourceGroup-Name>/providers/Microsoft.DataFactory/factories/<Your-Factory-Name> "ArmTemplate"' #For using preview that allows you to only stop/ start triggers that are modified, please comment out the above line and uncomment the below line. Make sure the package.json contains the build-preview command. #customCommand: 'run build-preview export $(Build.Repository.LocalPath) /subscriptions/222f1459-6ebd-4896-82ab-652d5f6883cf/resourceGroups/GartnerMQ2021/providers/Microsoft.DataFactory/factories/Dev-GartnerMQ2021-DataFactory "ArmTemplate"' displayName: 'Validate and Generate ARM template' # Publish the artifact to be used as a source for a release pipeline. - task: PublishPipelineArtifact@1 inputs: targetPath: '$(Build.Repository.LocalPath)/<folder-of-the-package.json-file>/ArmTemplate' #replace with the package.json folder artifact: 'ArmTemplates' publishLocation: 'pipeline'
Masukkan kode YAML Anda. Kami menyarankan agar Anda menggunakan file YAML sebagai titik awal.
Simpan dan jalankan. Jika Anda menggunakan YAML, itu akan dipicu setiap kali cabang utama diperbarui.
Catatan
Artefak yang dihasilkan sudah berisi skrip pra dan pasca penyebaran untuk pemicu sehingga tidak perlu menambahkannya secara manual. Namun, saat menyebarkan, seseorang masih perlu mereferensikan dokumentasi tentang menghentikan dan memulai pemicu untuk menjalankan skrip yang disediakan.
Konten terkait
Pelajari informasi selengkapnya tentang integrasi dan pengiriman berkelanjutan di Data Factory: Integrasi dan pengiriman berkelanjutan di Azure Data Factory.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk