Mengotomatiskan alur penyebaran Anda dengan menggunakan API dan Azure DevOps

Alat alur penyebaran Microsoft Fabric memungkinkan tim kecerdasan bisnis membangun proses rilis yang efisien dan dapat digunakan kembali untuk konten Fabric mereka.

Untuk mencapai integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD) konten, banyak organisasi menggunakan alat otomatisasi, termasuk Azure DevOps. Organisasi yang menggunakan Azure DevOps, dapat menggunakan ekstensi alat otomatisasi Power BI, yang mendukung banyak operasi API alur penyebaran.

Anda dapat menggunakan ALUR penyebaran REST API Power BI untuk mengintegrasikan Fabric ke dalam proses otomatisasi organisasi Anda. Berikut adalah beberapa contoh apa yang dapat dilakukan dengan menggunakan API:

  • Kelola alur dari awal hingga akhir, termasuk membuat alur, menetapkan ruang kerja ke tahap apa pun, dan menyebarkan dan menghapus alur.

  • Menetapkan dan menghapus penetapan pengguna ke dan dari alur.

  • Integrasikan Fabric ke dalam alat DevOps yang sudah dikenal seperti Azure DevOps atau GitHub Actions.

  • Jadwalkan penyebaran alur agar terjadi secara otomatis pada waktu tertentu.

  • Sebarkan beberapa alur secara bersamaan.

  • Kaskade tergantung pada penyebaran alur. Jika Anda memiliki konten yang tersambung di seluruh alur, Anda dapat memastikan beberapa alur disebarkan sebelum yang lain.

Fungsi API alur penyebaran

Catatan

API alur penyebaran saat ini hanya berfungsi untuk item Power BI.

ALUR penyebaran REST API Power BI memungkinkan Anda melakukan fungsi berikut:

  • Dapatkan informasi alur - Ambil informasi tentang alur Anda dan kontennya. Mendapatkan informasi alur memungkinkan Anda membangun panggilan API penyebaran secara dinamis. Anda juga dapat memeriksa status penyebaran atau riwayat penyebaran.

  • Sebarkan - Panggilan REST memungkinkan pengembang untuk menggunakan semua jenis penyebaran yang tersedia di layanan Fabric.

  • Membuat dan menghapus alur - Gunakan Buat alur dan Hapus alur untuk melakukan operasi ini.

  • Kelola ruang kerja - Dengan Tetapkan ruang kerja dan Batalkan penetapan ruang kerja, Anda dapat menetapkan dan menghapus penetapan ruang kerja ke tahap alur tertentu.

  • Mengelola pengguna - alur Menghapus pengguna alur memungkinkan Anda menghapus pengguna dari alur. Memperbarui pengguna alur memungkinkan Anda menambahkan pengguna ke alur Anda.

Penyebaran mana yang didukung oleh API?

API mendukung jenis penyebaran berikut:

  • Sebarkan semua - Satu panggilan API yang menyebarkan semua konten di ruang kerja ke tahap berikutnya dalam alur. Untuk operasi ini, gunakan API Sebarkan semua.

  • Penyebaran selektif - Hanya menyebarkan item tertentu, seperti laporan atau dasbor, dalam alur. Untuk operasi ini, gunakan API Penyebaran selektif.

  • Penyebaran mundur - Menyebarkan item baru ke tahap sebelumnya. Penyebaran mundur hanya berfungsi jika item yang disebarkan belum ada di tahap target. Untuk operasi ini, gunakan Sebarkan semua atau API penyebaranSelektif, dengan isBackwardDeployment diatur ke True.

  • Perbarui Aplikasi - Sebagai bagian dari panggilan API penyebaran, Anda dapat memperbarui konten aplikasi yang terkait dengan tahap tersebut. Item yang diperbarui secara otomatis tersedia untuk pengguna akhir Anda, setelah penyebaran selesai. Untuk operasi ini, gunakan Sebarkan semua atau API penyebaranSelektif, dengan PipelineUpdateApp Pengaturan.

Sebelum Anda mulai

Sebelum Anda menggunakan API alur penyebaran, pastikan Anda memiliki yang berikut ini:

Mengintegrasikan alur Anda dengan Azure DevOps

Untuk mengotomatiskan proses penyebaran dari dalam alur rilis Anda di Azure DevOps, gunakan salah satu metode berikut:

  • PowerShell - Skrip masuk ke Fabric menggunakan perwakilan layanan atau pengguna.

  • Power BI alat otomatisasi - Ekstensi ini berfungsi dengan perwakilan layanan atau pengguna.

Anda juga dapat menggunakan panggilan Power BI REST API lainnya, untuk menyelesaikan operasi terkait seperti mengimpor .pbix ke dalam alur, memperbarui sumber data dan parameter.

Menggunakan ekstensi alat otomatisasi Power BI

Ekstensi alat otomatisasi Power BI adalah ekstensi sumber terbuka Azure DevOps yang menyediakan berbagai operasi alur penyebaran yang dapat dilakukan di Azure DevOps. Ekstensi menghilangkan kebutuhan API atau skrip untuk mengelola alur. Setiap operasi dapat digunakan satu per satu untuk melakukan tugas, seperti membuat alur. Operasi dapat digunakan bersama-sama dalam alur Azure DevOps untuk membuat skenario yang lebih kompleks, seperti membuat alur, menetapkan ruang kerja ke alur, menambahkan pengguna, dan menyebarkan.

Setelah Anda menambahkan ekstensi alat otomatisasi Power BI ke DevOps, Anda perlu membuat koneksi layanan. Koneksi berikut tersedia:

  • Perwakilan layanan (disarankan) - Koneksi ini mengautentikasi dengan menggunakan perwakilan layanan dan memerlukan RAHASIA aplikasi Microsoft Entra dan ID aplikasi. Saat Anda menggunakan opsi ini, verifikasi bahwa pengaturan admin layanan untuk perwakilan layanan diaktifkan.

  • Nama pengguna dan kata sandi – Dikonfigurasi sebagai koneksi layanan generik dengan nama pengguna dan kata sandi. Metode koneksi ini tidak mendukung autentikasi multifaktor. Kami menyarankan agar Anda menggunakan metode koneksi perwakilan layanan karena tidak memerlukan penyimpanan kredensial pengguna di Azure DevOps.

Catatan

Ekstensi alat otomatisasi Power BI menggunakan koneksi layanan Azure DevOps untuk menyimpan kredensial. Untuk informasi selengkapnya, lihat Cara kami menyimpan kredensial Anda untuk Layanan Azure DevOps.

Setelah mengaktifkan koneksi layanan untuk alat otomatisasi Azure DevOps Power BI, Anda bisa membuat tugas alur. Ekstensi ini mencakup tugas alur penyebaran berikut:

  • Membuat alur baru

  • Menetapkan ruang kerja ke tahap alur

  • Menambahkan pengguna ke alur penyebaran

  • Menambahkan pengguna ke ruang kerja

  • Menyebarkan konten ke alur penyebaran

  • Menghapus ruang kerja dari alur penyebaran

  • Menghapus alur

Mengakses sampel PowerShell

Anda dapat menggunakan skrip PowerShell berikut untuk memahami cara melakukan beberapa proses otomatisasi. Untuk menampilkan atau menyalin teks dalam sampel PowerShell, gunakan tautan di bagian ini.

Anda juga dapat mengunduh seluruh folder GitHub PowerBI-Developer-Samples.

Contoh PowerShell

Bagian ini menjelaskan contoh skrip PowerShell yang menyebarkan model, laporan, dan dasbor semantik, dari tahap pengembangan hingga tahap pengujian. Skrip kemudian memeriksa apakah penyebaran berhasil.

Untuk menjalankan skrip PowerShell yang melakukan penyebaran, Anda memerlukan komponen berikut. Anda dapat menambahkan salah satu bagian ini ke dalam tugas di tahap alur Azure Anda.

  1. Masuk - Sebelum dapat menyebarkan konten, Anda perlu masuk ke Fabric menggunakan perwakilan layanan atau pengguna. Gunakan perintah Koneksi-PowerBIServiceAccount untuk masuk.

  2. Buat isi permintaan Anda - Di bagian skrip ini Anda menentukan item mana (seperti laporan dan dasbor) yang Anda sebarkan.

    $body = @{ 
        sourceStageOrder = 0 # The order of the source stage. Development (0), Test (1).   
        datasets = @(
            @{sourceId = "Insert your dataset ID here" }
        )      
        reports = @(
            @{sourceId = "Insert your report ID here" }
        )            
        dashboards = @(
            @{sourceId = "Insert your dashboard ID here" }
        )
    
        options = @{
            # Allows creating new item if needed on the Test stage workspace
            allowCreateArtifact = $TRUE
    
            # Allows overwriting existing item if needed on the Test stage workspace
            allowOverwriteArtifact = $TRUE
        }
    } | ConvertTo-Json
    
  3. Sebarkan - Di sini Anda melakukan penyebaran.

    $url = "pipelines/{0}/Deploy" -f "Insert you pipeline ID here"
    $deployResult = Invoke-PowerBIRestMethod -Url $url  -Method Post -Body $body | ConvertFrom-Json
    
  4. (Opsional) Pemberitahuan penyelesaian penyebaran - Karena API penyebaran tidak sinkron, Anda dapat memprogram skrip untuk memberi tahu Anda saat penyebaran selesai.

    $url =  "pipelines/{0}/Operations/{1}" -f "Insert you pipeline ID here",$deployResult.id
    $operation = Invoke-PowerBIRestMethod -Url $url -Method Get | ConvertFrom-Json    
    while($operation.Status -eq "NotStarted" -or $operation.Status -eq "Executing")
    {
        # Sleep for 5 seconds
        Start-Sleep -s 5
        $operation = Invoke-PowerBIRestMethod -Url $url -Method Get | ConvertFrom-Json
    }
    

Pertimbangan dan batasan

  • Penyebaran dengan menggunakan API tunduk pada batasan yang sama dengan antarmuka pengguna alur penyebaran.

  • Perwakilan layanan tidak dapat mengonfigurasi kredensial OAuth. Setelah Anda menyebarkan item baru, perwakilan layanan yang masuk menjadi pemilik laporan paginated dan model semantik yang disebarkan. Dalam kasus seperti itu, refresh tidak dapat diselesaikan.

  • Menyebarkan aliran data dengan menggunakan perwakilan layanan tidak didukung.

  • Jumlah maksimum item yang dapat disebarkan dalam satu penyebaran adalah 300.

  • API alur penyebaran saat ini hanya mendukung item Power BI.

  • Membuat alur yang disesuaikan dari 2-10 tahap saat ini hanya didukung melalui UI.