Bagikan melalui


Menjalankan titik akhir batch dari peristiwa Event Grid di penyimpanan

BERLAKU UNTUK:Ekstensi ml Azure CLI v2 (saat ini)Python SDK azure-ai-ml v2 (saat ini)

Event Grid adalah layanan terkelola penuh yang memungkinkan Anda mengelola kejadian dengan mudah di berbagai layanan dan aplikasi Azure. Event Grid menyederhanakan pembangunan aplikasi berbasis kejadian dan nirserver. Dalam tutorial ini, kita mempelajari cara memicu pekerjaan titik akhir batch untuk memproses file segera setelah dibuat di akun penyimpanan. Dalam arsitektur ini, kami menggunakan Aplikasi Logika untuk berlangganan peristiwa tersebut dan memicu titik akhir.

Alur kerja terlihat sebagai berikut:

Diagram displaying the different components of the architecture.

  1. Peristiwa yang dibuat file dipicu saat blob baru dibuat di akun penyimpanan tertentu.

  2. Acara dikirim ke Event Grid untuk diproses ke semua pelanggan.

  3. Aplikasi Logika berlangganan untuk mendengarkan peristiwa tersebut. Karena akun penyimpanan dapat berisi beberapa aset data, pemfilteran peristiwa akan diterapkan untuk hanya bereaksi terhadap peristiwa yang terjadi di folder tertentu di dalamnya. Pemfilteran lebih lanjut dapat dilakukan jika diperlukan (misalnya, berdasarkan ekstensi file).

  4. Aplikasi Logika akan dipicu, yang pada gilirannya akan:

    1. Ini akan mendapatkan token otorisasi untuk memanggil titik akhir batch menggunakan kredensial dari Perwakilan Layanan

    2. Ini akan memicu titik akhir batch (penyebaran default) menggunakan file yang baru dibuat sebagai input.

  5. Titik akhir batch akan mengembalikan nama pekerjaan yang dibuat untuk memproses file.

Penting

Saat menggunakan Logic App yang terhubung dengan event grid untuk memanggil titik akhir batch, Anda menghasilkan satu pekerjaan per setiap file blob yang dibuat di akun sotrage. Perlu diingat bahwa karena titik akhir batch mendistribusikan pekerjaan di tingkat file, tidak akan ada paralelisasi yang terjadi. Sebagai gantinya, Anda akan memanfaatkan kemampuan titik akhir batch untuk menjalankan beberapa pekerjaan di bawah kluster komputasi yang sama. Jika Anda perlu menjalankan pekerjaan di seluruh folder secara otomatis, kami sarankan Anda untuk beralih ke Memanggil titik akhir batch dari Azure Data Factory.

Prasyarat

  • Contoh ini mengasumsikan bahwa Anda memiliki model yang disebarkan dengan benar sebagai titik akhir batch. Arsitektur ini dapat diperluas dengan sempurna untuk bekerja dengan penyebaran komponen Alur jika diperlukan.
  • Contoh ini mengasumsikan bahwa penyebaran batch Anda berjalan di kluster komputasi yang disebut batch-cluster.
  • Aplikasi Logika yang kami buat akan berkomunikasi dengan Azure Pembelajaran Mesin titik akhir batch menggunakan REST. Untuk mengetahui selengkapnya tentang cara menggunakan REST API titik akhir batch baca Membuat pekerjaan dan memasukkan data untuk titik akhir batch.

Mengautentikasi terhadap titik akhir batch

Azure Logic Apps dapat memanggil REST API titik akhir batch dengan menggunakan aktivitas HTTP . Titik akhir batch mendukung ID Microsoft Entra untuk otorisasi dan karenanya permintaan yang dibuat ke API memerlukan penanganan autentikasi yang tepat.

Sebaiknya gunakan perwakilan layanan untuk autentikasi dan interaksi dengan titik akhir batch dalam skenario ini.

  1. Buat perwakilan layanan dengan mengikuti langkah-langkah di Mendaftarkan aplikasi dengan ID Microsoft Entra dan membuat perwakilan layanan.

  2. Buat rahasia yang akan digunakan untuk autentikasi seperti yang dijelaskan di Opsi 3: Buat rahasia klien baru.

  3. Catat Nilai rahasia klien yang dihasilkan. Ini hanya ditampilkan sekali.

  4. Catat client ID dan tenant id di panel Gambaran Umum aplikasi.

  5. Berikan akses untuk perwakilan layanan yang Anda buat ke ruang kerja Anda seperti yang dijelaskan di Memberikan akses. Dalam contoh ini, perwakilan layanan akan memerlukan:

    1. Izin di ruang kerja untuk membaca penyebaran batch dan melakukan tindakan di atasnya.
    2. Izin untuk membaca/menulis di penyimpanan data.

Mengaktifkan akses data

Kami akan menggunakan URI cloud yang disediakan oleh Event Grid untuk menunjukkan data input yang akan dikirim ke pekerjaan penyebaran. Titik akhir batch menggunakan identitas komputasi untuk memasang data sambil menjaga identitas pekerjaan untuk membacanya setelah dipasang. Oleh karena itu, kita perlu menetapkan identitas terkelola yang ditetapkan pengguna ke kluster komputasi untuk memastikannya memiliki akses untuk memasang data yang mendasar. Ikuti langkah-langkah berikut untuk memastikan akses data:

  1. Buat sumber daya identitas terkelola:

    IDENTITY=$(az identity create  -n azureml-cpu-cluster-idn  --query id -o tsv)
    
  2. Perbarui kluster komputasi untuk menggunakan identitas terkelola yang kami buat:

    Catatan

    Contoh ini mengasumsikan Anda memiliki kluster komputasi yang dibuat bernama cpu-cluster dan digunakan untuk penyebaran default di titik akhir.

    az ml compute update --name cpu-cluster --identity-type user_assigned --user-assigned-identities $IDENTITY
    
  3. Buka portal Azure dan pastikan identitas terkelola memiliki izin yang tepat untuk membaca data. Untuk mengakses layanan penyimpanan, Anda harus memiliki setidaknya akses Storage Blob Data Reader ke akun penyimpanan. Hanya pemilik akun penyimpanan yang dapat mengubah tingkat akses Anda melalui portal Microsoft Azure.

Membuat Logic App

  1. Di portal Azure, masuk dengan akun Azure Anda.

  2. Di beranda Azure, pilihBuat sumber daya.

  3. Di menu Marketplace Azure, pilih Integrasi>Aplikasi Logika.

    Screenshot that shows Azure Marketplace menu with

  4. Di panel Buat Aplikasi Logika, di tab Dasar-dasar, berikan informasi berikut mengenai sumber daya aplikasi logika Anda.

    Screenshot showing Azure portal, logic app creation pane, and info for new logic app resource.

    Properti Wajib Nilai Deskripsi
    Langganan Ya <Azure-subscription-name> Nama langganan Azure Anda. Contoh ini menggunakan Pay-As-You-Go.
    Grup Sumber Daya Ya LA-TravelTime-RG Grup sumber daya Azure tempat Anda membuat sumber daya aplikasi logika dan sumber daya terkait. Nama ini harus unik di seluruh wilayah dan hanya dapat berisi huruf, angka, tanda hubung (-), garis bawah (_), tanda kurung ((, )), dan titik (.).
    Nama Ya LA-TravelTime Nama sumber daya aplikasi logika Anda, yang harus unik di seluruh wilayah dan hanya dapat berisi huruf, angka, tanda hubung (-), garis bawah (_), tanda kurung ((, )), dan titik (.).
  5. Sebelum Anda melanjutkan membuat pilihan, buka bagian Paket. Untuk Jenis paket, pilih Konsumsi untuk hanya menampilkan pengaturan untuk alur kerja aplikasi logika Konsumsi, yang berjalan di Azure Logic Apps multi-penyewa.

    Properti Jenis paket juga menentukan model penagihan yang akan digunakan.

    Jenis paket Deskripsi
    Standard Jenis aplikasi logika ini adalah pilihan default dan berjalan di Azure Logic Apps penyewa tunggal dan menggunakan model tagihan Standar.
    Consumption Jenis aplikasi logika ini berjalan di Azure Logic Apps multi-penyewa global dan menggunakanModel tagihan konsumsi.

    Penting

    Untuk ruang kerja yang diaktifkan tautan privat, Anda perlu menggunakan paket Standar untuk Logic Apps dengan mengizinkan konfigurasi jaringan privat.

  6. Sekarang lanjutkan dengan pemilihan berikut:

    Properti Wajib Nilai Deskripsi
    Wilayah Ya US Barat Wilayah pusat data Azure tempat menyimpan informasi aplikasi Anda. Contoh ini menyebarkan aplikasi logika sampel ke wilayah AS Barat di Azure.

    Catatan: Apabila langganan Anda dikaitkan dengan lingkungan layanan integrasi, daftar ini mencakup lingkungan tersebut.
    Mengaktifkan analitik log Ya Tidak Opsi ini muncul dan hanya berlaku saat Anda memilih jenis aplikasi logika Konsumsi. Ubah opsi ini hanya saat Anda ingin mengaktifkan pembuatan log diagnostik. Untuk tutorial ini, biarkan pilihan default.
  7. Setelah selesai, pilih Tinjau + buat. Setelah Azure memvalidasi informasi mengenai sumber daya aplikasi logika Anda, pilih Buat.

  8. Setelah Azure menyebarkan aplikasi Anda, pilih Buka sumber daya.

    Azure membuka panel pilihan templat alur kerja, yang menunjukkan video pengenalan, pemicu yang umum digunakan, dan pola templat alur kerja.

  9. Gulir ke bawah bagian video dan pemicu umum ke bagian Templat dan pilih Aplikasi Logika Kosong.

    Screenshot that shows the workflow template selection pane with

Mengonfigurasi parameter alur kerja

Aplikasi Logika ini menggunakan parameter untuk menyimpan informasi tertentu yang Anda perlukan untuk menjalankan penyebaran batch.

  1. Pada perancang alur kerja, di bawah bilah alat, pilih opsi Parameter dan konfigurasikan sebagai berikut:

    Screenshot of all the parameters required in the workflow.

  2. Untuk membuat parameter, gunakan opsi Tambahkan parameter :

    Screenshot showing how to add one parameter in designer.

  3. Buat parameter berikut.

    Parameter Deskripsi Sampel nilai
    tenant_id ID Penyewa tempat titik akhir disebarkan. 00000000-0000-0000-00000000
    client_id ID klien dari perwakilan layanan yang digunakan untuk memanggil titik akhir. 00000000-0000-0000-00000000
    client_secret Rahasia klien dari perwakilan layanan yang digunakan untuk memanggil titik akhir. ABCDEFGhijkLMNOPQRstUVwz
    endpoint_uri URI penilaian titik akhir. https://<endpoint_name>.<region>.inference.ml.azure.com/jobs

    Penting

    endpoint_uri adalah URI titik akhir yang coba Anda jalankan. Titik akhir harus memiliki penyebaran default yang dikonfigurasi.

    Tip

    Gunakan nilai yang dikonfigurasi di Mengautentikasi terhadap titik akhir batch.

Tambahkan pemicu

Kami ingin memicu Aplikasi Logika setiap kali file baru dibuat di folder tertentu (aset data) dari Akun Penyimpanan. Aplikasi Logika menggunakan informasi peristiwa untuk memanggil titik akhir batch dan meneruskan file tertentu yang akan diproses.

  1. Di perancang alur kerja, pada kotak pencarian, pilih Bawaan.

  2. Dalam kotak pencarian, masukkan kisi peristiwa, dan pilih pemicu bernama Saat peristiwa sumber daya terjadi.

  3. Konfigurasikan pemicu sebagai berikut:

    Properti Nilai Deskripsi
    Langganan Nama langganan Anda Langganan tempat Akun Azure Storage ditempatkan.
    Jenis Sumber Daya Microsoft.Storage.StorageAccounts Jenis sumber daya yang memancarkan peristiwa.
    Nama Sumber Daya Nama akun penyimpanan Anda Nama Akun Penyimpanan tempat file akan dibuat.
    Item Jenis Acara Microsoft.Storage.BlobCreated Jenis kejadian.
  4. Klik Tambahkan parameter baru dan pilih Filter Awalan. Tambahkan nilai /blobServices/default/containers/<container_name>/blobs/<path_to_data_folder>.

    Penting

    Filter Awalan memungkinkan Event Grid untuk hanya memberi tahu alur kerja saat blob dibuat di jalur tertentu yang kami tunjukkan. Dalam hal ini, kami berasumsi bahwa file akan dibuat oleh beberapa proses eksternal di folder <path_to_data_folder> di dalam kontainer <container_name> di Akun Penyimpanan yang dipilih. Konfigurasikan parameter ini agar sesuai dengan lokasi data Anda. Jika tidak, peristiwa akan diaktifkan untuk file apa pun yang dibuat di lokasi mana pun dari Akun Penyimpanan. Lihat Pemfilteran peristiwa untuk Event Grid untuk detail selengkapnya.

    Pemicu akan terlihat sebagai berikut:

    Screenshot of the trigger activity of the Logic App.

Mengonfigurasi tindakan

  1. Klik + Langkah baru.

  2. Pada perancang alur kerja, di bawah kotak pencarian, pilih Bawaan lalu klik HTTP:

  3. Konfigurasikan tindakan sebagai berikut:

    Properti Nilai Catatan
    Metode POST Metode HTTP
    URI concat('https://login.microsoftonline.com/', parameters('tenant_id'), '/oauth2/token') Klik Tambahkan konteks dinamis, lalu Ekspresi, untuk memasukkan ekspresi ini.
    Header Content-Type dengan nilai application/x-www-form-urlencoded
    Isi concat('grant_type=client_credentials&client_id=', parameters('client_id'), '&client_secret=', parameters('client_secret'), '&resource=https://ml.azure.com') Klik Tambahkan konteks dinamis, lalu Ekspresi, untuk memasukkan ekspresi ini.

    Tindakan akan terlihat sebagai berikut:

    Screenshot of the authorize activity of the Logic App.

  4. Klik + Langkah baru.

  5. Pada perancang alur kerja, di bawah kotak pencarian, pilih Bawaan lalu klik HTTP:

  6. Konfigurasikan tindakan sebagai berikut:

    Properti Nilai Catatan
    Metode POST Metode HTTP
    URI endpoint_uri Klik Tambahkan konteks dinamis, lalu pilih di bawah parameters.
    Header Content-Type dengan nilai application/json
    Header Authorization dengan nilai concat('Bearer ', body('Authorize')['access_token']) Klik Tambahkan konteks dinamis, lalu Ekspresi, untuk memasukkan ekspresi ini.
  7. Di isi parameter, klik Tambahkan konteks dinamis, lalu Ekspresi, untuk memasukkan ekspresi berikut:

    replace('{
     "properties": {
       "InputData": {
         "mnistinput": {
            "JobInputType" : "UriFile",
             "Uri" : "<JOB_INPUT_URI>"
           }
          }
      }
    }', '<JOB_INPUT_URI>', triggerBody()?[0]['data']['url'])
    

    Tip

    Payload sebelumnya sesuai dengan penyebaran Model. Jika Anda bekerja dengan penyebaran komponen Alur, silakan sesuaikan format sesuai dengan harapan input alur. Pelajari selengkapnya tentang cara menyusun input dalam panggilan REST di Membuat pekerjaan dan memasukkan data untuk titik akhir batch (REST).

    Tindakan akan terlihat sebagai berikut:

    Screenshot of the invoke activity of the Logic App.

    Catatan

    Perhatikan bahwa tindakan terakhir ini akan memicu pekerjaan batch, tetapi tidak akan menunggu penyelesaiannya. Azure Logic Apps tidak dirancang untuk aplikasi yang berjalan lama. Jika Anda perlu menunggu pekerjaan selesai, kami sarankan Anda beralih ke Jalankan titik akhir batch dari Azure Data Factory.

  8. Klik Simpan.

  9. Aplikasi Logika siap dijalankan dan akan dipicu secara otomatis setiap kali file baru dibuat di bawah jalur yang ditunjukkan. Anda akan melihat aplikasi telah berhasil menerima peristiwa dengan memeriksa riwayat Eksekusinya:

    Screenshot of the invoke history of the Logic App.

Langkah berikutnya