Bagikan melalui


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

  1. Setiap pengguna membuat perubahan di cabang privat mereka.
  2. Pendorongan ke master tidak diperbolehkan. Pengguna harus membuat permintaan tarik untuk membuat perubahan.
  3. Pengguna harus memuat UI Data Factory dan memilih Publikasikan untuk menyebarkan perubahan ke Data Factory dan membuat templat ARM di cabang publikasi.
  4. Alur Rilis DevOps dikonfigurasi untuk membuat rilis baru dan menyebarkan templat ARM setiap kali perubahan baru didorong ke cabang publikasi.

Diagram yang memperlihatkan alur CI/CD saat ini.

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

  1. Setiap pengguna membuat perubahan di cabang privat mereka.
  2. Pendorongan ke master tidak diperbolehkan. Pengguna harus membuat permintaan tarik untuk membuat perubahan.
  3. 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.
  4. Alur Rilis DevOps dikonfigurasi untuk membuat rilis baru dan menyebarkan templat ARM setiap kali build baru tersedia.

Diagram yang menunjukkan alur CI/CD baru.

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:

  1. Buka proyek Azure DevOps, dan buka Alur. Pilih Alur Baru.

    Cuplikan layar yang memperlihatkan tombol Alur Baru.

  2. 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"
        }
    } 
    
  3. 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.

    Cuplikan layar yang memperlihatkan alur starter.

    # 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'
    
  4. Masukkan kode YAML Anda. Kami menyarankan agar Anda menggunakan file YAML sebagai titik awal.

  5. 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.

Pelajari informasi selengkapnya tentang integrasi dan pengiriman berkelanjutan di Data Factory: Integrasi dan pengiriman berkelanjutan di Azure Data Factory.