Memanggil Azure Functions dari alur kerja di Azure Logic Apps

Berlaku untuk: Azure Logic Apps (Konsumsi + Standar)

Untuk menjalankan kode yang melakukan pekerjaan tertentu di alur kerja aplikasi logika, Anda tidak perlu membuat aplikasi atau infrastruktur lengkap. Sebagai gantinya, Anda dapat membuat dan memanggil fungsi Azure. Azure Functions menyediakan komputasi tanpa server di cloud dan kemampuan untuk melakukan tugas berikut:

  • Perluas perilaku alur kerja Anda dengan menjalankan fungsi yang dibuat menggunakan Node.js atau C#.
  • Lakukan penghitungan dalam alur kerja Anda.
  • Terapkan pemformatan tingkat lanjut atau bidang komputasi di alur kerja Anda.

Panduan cara ini memperlihatkan cara memanggil fungsi Azure yang ada dari alur kerja Konsumsi atau Standar Anda. Untuk menjalankan kode tanpa menggunakan Azure Functions, lihat dokumentasi berikut:

Batasan

  • Hanya alur kerja Konsumsi yang mendukung autentikasi panggilan fungsi Azure menggunakan identitas terkelola dengan autentikasi Microsoft Entra. Alur kerja standar saat ini tidak didukung di bagian tentang cara mengaktifkan autentikasi untuk panggilan fungsi.

  • Azure Logic Apps tidak mendukung penggunaan Azure Functions dengan slot penyebaran yang diaktifkan. Meskipun skenario ini terkadang berhasil, perilaku ini tidak dapat diprediksi dan dapat mengakibatkan masalah otorisasi saat alur kerja Anda mencoba memanggil fungsi Azure.

Prasyarat

  • Akun dan langganan Azure. Jika Anda tidak memiliki langganan, daftar untuk mendapatkan akun Azure secara gratis.

  • Sumber daya aplikasi fungsi Azure, yang berisi satu atau beberapa fungsi Azure.

    • Aplikasi fungsi dan aplikasi logika Anda harus menggunakan langganan Azure yang sama.

    • Sumber daya aplikasi fungsi Anda harus menggunakan .NET atau Node.js sebagai tumpukan runtime.

    • Saat menambahkan fungsi baru ke aplikasi fungsi, Anda dapat memilih C# atau JavaScript.

  • Fungsi Azure yang ingin Anda panggil. Anda dapat membuat fungsi ini menggunakan alat berikut:

    • Portal Azure

    • Visual Studio

    • Visual Studio Code

    • Azure CLI

    • Azure PowerShell

    • Templat ARM

    • Fungsi Anda harus menggunakan templat pemicu HTTP.

      Templat pemicu HTTP dapat menerima konten yang memiliki application/json jenis dari alur kerja aplikasi logika Anda. Saat Anda menambahkan fungsi ke alur kerja Anda, desainer memperlihatkan fungsi kustom yang dibuat dari templat ini dalam langganan Azure Anda.

    • Kode fungsi Anda harus menyertakan respons dan payload yang ingin Anda kembalikan ke alur kerja setelah fungsi Anda selesai. Objek context mengacu pada pesan yang dikirim alur kerja Anda melalui parameter tindakan Azure Functions bernama Isi Permintaan nanti dalam panduan ini.

      Panduan ini menggunakan fungsi sampel berikut, yang diberi nama FabrikamAzureFunction:

      module.exports = function (context, data) {
      
         var input = data;
      
         // Function processing logic
         // Function response for later use
         context.res = {
            body: {
              content:"Thank you for your feedback: " + input
            }
         };
         context.done();
      }
      

      Untuk mengakses properti objek context dari dalam fungsi Anda, gunakan sintaksis berikut:

      context.body.<property-name>

      Misalnya, untuk mereferensikan content properti dalam context objek, gunakan sintaks berikut:

      context.body.content

      Kode ini juga menyertakan input variabel, yang menyimpan nilai dari parameter sehingga fungsi Anda dapat melakukan operasi pada nilai tersebut data . Dalam fungsi JavaScript, data variabel juga merupakan pintasan untuk context.body.

      Catatan

      Properti body di sini berlaku untuk context objek dan tidak sama dengan token Isi dalam output tindakan, yang mungkin juga Anda teruskan ke fungsi Anda.

    • Fungsi Anda tidak dapat menggunakan rute kustom kecuali Anda menentukan definisi OpenAPI (file Swagger).

      Ketika Anda memiliki definisi OpenAPI untuk fungsi Anda, perancang alur kerja memberi Anda pengalaman yang lebih kaya saat Anda bekerja dengan parameter fungsi. Sebelum alur kerja Anda dapat menemukan dan mengakses fungsi yang memiliki definisi OpenAPI, siapkan aplikasi fungsi Anda dengan mengikuti langkah-langkah ini.

  • Alur kerja aplikasi logika Konsumsi atau Standar yang dimulai dengan pemicu apa pun.

    Contoh dalam panduan ini menggunakan pemicu Office 365 Outlook bernama Saat email baru tiba.

  • Untuk membuat dan memanggil fungsi Azure yang memanggil alur kerja lain, pastikan alur kerja sekunder dimulai dengan pemicu yang menyediakan titik akhir yang dapat dipanggil.

    Misalnya, Anda dapat memulai alur kerja dengan pemicu HTTP atau Permintaan umum, atau Anda dapat menggunakan pemicu berbasis layanan, seperti Azure Queues atau Event Grid. Di dalam fungsi Anda, kirim permintaan HTTP POST ke URL pemicu dan sertakan payload yang Anda inginkan untuk diproses alur kerja sekunder Anda. Untuk informasi selengkapnya, lihat Alur kerja aplikasi logika panggilan, pemicu, atau sarang.

Tips untuk bekerja dengan fungsi Azure

Membuat definisi OpenAPI atau file Swagger untuk fungsi Anda

Untuk pengalaman yang lebih kaya saat Anda bekerja dengan parameter fungsi di desainer alur kerja, buat definisi OpenAPI atau file Swagger untuk fungsi Anda. Untuk menyiapkan aplikasi fungsi Anda sehingga alur kerja Anda dapat menemukan dan menggunakan fungsi yang memiliki deskripsi Swagger, ikuti langkah-langkah berikut:

  1. Di portal Azure, buka aplikasi fungsi Anda. Pastikan aplikasi fungsi berjalan secara aktif.

  2. Di aplikasi fungsi Anda, siapkan Berbagi Sumber Daya Lintas Asal (CORS) sehingga semua asal diizinkan dengan mengikuti langkah-langkah berikut:

    1. Pada menu aplikasi fungsi, di bawah API, pilih CORS.

    2. Di bawah Asal yang Diizinkan, tambahkan karakter kartubebas tanda bintang (*), tetapi hapus semua asal lain dalam daftar, dan pilih Simpan.

      Cuplikan layar memperlihatkan portal Azure, panel CORS, dan karakter kartubebas * dimasukkan di bawah Asal yang Diizinkan.

Mengakses nilai properti di dalam permintaan HTTP

Fungsi berbasis webhook dapat menerima permintaan HTTP sebagai input dan meneruskan permintaan tersebut ke fungsi lain. Misalnya, meskipun Azure Logic Apps memiliki fungsi yang mengonversi nilai DateTime, contoh dasar fungsi JavaScript ini menunjukkan bagaimana Anda dapat mengakses properti di dalam objek permintaan HTTP yang diteruskan ke fungsi dan melakukan operasi pada nilai properti tersebut. Untuk mengakses properti di dalam objek, contoh ini menggunakan operator titik (.):

function convertToDateString(request, response){
   var data = request.body;
   response = {
      body: data.date.ToDateString();
   }
}

Inilah yang terjadi di dalam fungsi ini:

  1. Fungsi ini membuat data variabel, lalu menetapkan body objek, yang berada di dalam request objek, ke variabel . Fungsi ini menggunakan operator titik (.) untuk mereferensikan body objek di request dalam objek:

    var data = request.body;
    
  2. Fungsi sekarang dapat mengakses date properti melalui data variabel, dan mengonversi nilai properti dari jenis DateTime ke jenis DateString dengan memanggil ToDateString() fungsi . Fungsi ini juga mengembalikan hasil melalui properti body dalam respons fungsi:

    body: data.date.ToDateString();
    

Setelah Anda membuat fungsi di Azure, ikuti langkah-langkah untuk menambahkan fungsi Azure ke alur kerja Anda.

Menambahkan fungsi ke alur kerja Anda (Alur kerja Konsumsi + Standar)

Untuk memanggil fungsi Azure dari alur kerja, Anda dapat menambahkan fungsi tersebut seperti tindakan lain dalam perancang.

  1. Di portal Azure, buka alur kerja aplikasi logika Penggunaan Anda di perancang.

  2. Di perancang, ikuti langkah-langkah umum ini untuk menambahkan tindakan Azure Functions bernama Pilih fungsi Azure.

  3. Di panel Buat Koneksi ion, ikuti langkah-langkah berikut:

    1. Berikan Nama Koneksi ion untuk koneksi ke aplikasi fungsi Anda.

    2. Dari daftar aplikasi fungsi, pilih aplikasi fungsi Anda.

    3. Dari daftar fungsi, pilih fungsi, lalu pilih Tambahkan Tindakan, misalnya:

      Cuplikan layar memperlihatkan alur kerja Konsumsi dengan aplikasi dan fungsi fungsi yang dipilih.

  4. Dalam kotak tindakan fungsi yang dipilih, ikuti langkah-langkah berikut:

    1. Untuk Isi Permintaan, berikan input fungsi Anda, yang harus diformat sebagai objek JavaScript Object Notation (JSON). Input ini adalah payload objek konteks atau pesan yang dikirim alur kerja Anda ke fungsi Anda.

      • Untuk memilih token yang mewakili output dari langkah-langkah sebelumnya, pilih di dalam kotak Isi Permintaan, lalu pilih opsi untuk membuka daftar konten dinamis (ikon petir).

      • Untuk membuat ekspresi, pilih di dalam kotak Isi Permintaan, lalu pilih opsi untuk membuka editor ekspresi (ikon rumus).

      Contoh berikut menentukan objek JSON dengan content atribut dan token yang mewakili output Dari dari pemicu email sebagai nilai Isi Permintaan:

      Cuplikan layar memperlihatkan alur kerja Konsumsi dan fungsi dengan contoh Isi Permintaan untuk payload objek konteks.

      Di sini, objek konteks tidak dilemparkan sebagai string, sehingga konten objek ditambahkan langsung ke muatan JSON. Berikut adalah contoh lengkapnya:

      Cuplikan layar memperlihatkan alur kerja Konsumsi dan fungsi dengan contoh Isi Permintaan lengkap untuk payload objek konteks.

      Jika Anda memberikan objek konteks selain token JSON yang meneruskan string, objek JSON, atau array JSON, Anda mendapatkan kesalahan. Namun, Anda dapat mentransmisikan objek konteks sebagai string dengan menyertakan token dalam tanda kutip (""), misalnya, jika Anda ingin menggunakan token Waktu Diterima:

      Cuplikan layar memperlihatkan alur kerja Konsumsi dan contoh Isi Permintaan yang melemparkan objek konteks sebagai string.

    2. Untuk menentukan detail lain seperti metode yang akan digunakan, header permintaan, parameter kueri, atau autentikasi, buka daftar Parameter tingkat lanjut, dan pilih parameter yang Anda inginkan. Untuk autentikasi, opsi Anda berbeda berdasarkan fungsi yang Anda pilih. Untuk informasi selengkapnya, tinjau Aktifkan autentikasi untuk fungsi.

Mengaktifkan autentikasi untuk panggilan fungsi Azure (hanya alur kerja Konsumsi)

Alur kerja Konsumsi Anda dapat menggunakan identitas terkelola untuk mengautentikasi panggilan fungsi Azure dan mengakses sumber daya yang dilindungi oleh ID Microsoft Entra. Identitas terkelola dapat mengautentikasi akses tanpa Anda harus masuk dan memberikan kredensial atau rahasia. Azure mengelola identitas ini untuk Anda dan membantu mengamankan kredensial Anda karena Anda tidak perlu memberikan atau memutar rahasia. Anda dapat menyiapkan identitas yang ditetapkan sistem atau identitas yang ditetapkan pengguna yang dibuat secara manual di tingkat sumber daya aplikasi logika. Fungsi Azure yang dipanggil dari alur kerja Anda dapat menggunakan identitas terkelola yang sama untuk autentikasi.

Catatan

Hanya alur kerja Konsumsi yang mendukung autentikasi untuk panggilan fungsi Azure menggunakan identitas terkelola dan autentikasi Microsoft Entra. Alur kerja standar saat ini tidak menyertakan dukungan ini saat Anda menggunakan tindakan untuk memanggil fungsi Azure.

Untuk informasi selengkapnya, lihat dokumentasi berikut:

Untuk menyiapkan aplikasi dan fungsi fungsi Anda sehingga dapat menggunakan identitas terkelola aplikasi logika Konsumsi Anda, ikuti langkah-langkah tingkat tinggi berikut:

  1. Aktifkan dan siapkan identitas terkelola aplikasi logika Anda.

  2. Siapkan fungsi Anda untuk autentikasi anonim.

  3. Temukan nilai yang diperlukan untuk menyiapkan autentikasi Microsoft Entra.

  4. Buat pendaftaran aplikasi untuk aplikasi fungsi Anda.

Menyiapkan fungsi Anda untuk autentikasi anonim (Hanya alur kerja Konsumsi)

Agar fungsi Anda menggunakan identitas terkelola aplikasi logika Konsumsi, Anda harus mengatur tingkat autentikasi fungsi Anda ke anonymous. Jika tidak, alur kerja Anda melemparkan kesalahan BadRequest .

  1. Di portal Azure, temukan dan pilih aplikasi fungsi Anda.

    Langkah-langkah berikut menggunakan contoh aplikasi fungsi bernama FabrikamFunctionApp.

  2. Pada menu sumber daya aplikasi fungsi, di bawah Alat pengembangan, pilih Alat Tingkat Lanjut>Jalankan.

    Cuplikan layar memperlihatkan menu aplikasi fungsi dengan opsi yang dipilih untuk Alat Tingkat Lanjut dan Buka.

  3. Setelah halaman Kudu Plus terbuka, di bilah judul situs web Kudu, dari menu Konsol Debug, pilih CMD.

    Cuplikan layar memperlihatkan halaman Layanan Kudu dengan menu Konsol Debug yang dibuka dan opsi yang dipilih bernama CMD.

  4. Setelah halaman berikutnya muncul, dari daftar folder, pilih situs>wwwroot>fungsi Anda.

    Langkah-langkah berikut menggunakan contoh fungsi bernama FabrikamAzureFunction.

    Cuplikan layar memperlihatkan daftar folder dengan folder yang dibuka untuk situs, wwwroot, dan fungsi Anda.

  5. Buka file function.json untuk diedit.

    Cuplikan layar memperlihatkan file function.json dengan perintah edit yang dipilih.

  6. Di objek pengikatan, periksa apakah properti authLevel ada. Jika properti ada, atur nilai properti ke anonymous. Jika tidak, tambahkan properti tersebut, dan atur nilainya.

    Cuplikan layar memperlihatkan objek pengikatan dengan properti authLevel diatur ke anonim.

  7. Setelah selesai, simpan pengaturan. Lanjutkan ke langkah berikutnya.

Temukan nilai yang diperlukan untuk menyiapkan autentikasi Microsoft Entra (hanya alur kerja Konsumsi)

Sebelum dapat menyiapkan aplikasi fungsi untuk menggunakan identitas terkelola dan autentikasi Microsoft Entra, Anda perlu menemukan dan menyimpan nilai berikut dengan mengikuti langkah-langkah di bagian ini.

  1. Temukan ID penyewa untuk penyewa Microsoft Entra Anda.

  2. Temukan ID objek untuk identitas terkelola Anda.

  3. Temukan ID aplikasi untuk aplikasi Enterprise yang terkait dengan identitas terkelola Anda.

Menemukan ID penyewa untuk penyewa Microsoft Entra Anda

Jalankan perintah PowerShell bernama Get-AzureAccount, atau di portal Azure, ikuti langkah-langkah berikut:

  1. Di portal Azure, buka penyewa Microsoft Entra Anda.

    Panduan ini menggunakan Fabrikam sebagai penyewa contoh.

  2. Pada menu penyewa, pilih Gambaran Umum.

  3. Salin dan simpan ID penyewa Anda untuk digunakan nanti, misalnya:

    Cuplikan layar memperlihatkan halaman Properti ID Microsoft Entra dengan tombol salin ID penyewa dipilih.

Menemukan ID objek untuk identitas terkelola Anda

Setelah Mengaktifkan identitas terkelola untuk sumber daya aplikasi logika Konsumsi, temukan objek untuk identitas terkelola Anda. Anda akan menggunakan ID ini untuk menemukan aplikasi Enterprise terkait di penyewa Entra Anda.

  1. Pada menu aplikasi logika, di bawah Pengaturan, pilih Identitas, lalu pilih Sistem yang ditetapkan atau Ditetapkan pengguna.

    • Sistem ditetapkan

      Salin ID Objek (utama) identitas:

      Cuplikan layar memperlihatkan halaman Identitas aplikasi logika Konsumsi dengan tab yang dipilih bernama Sistem yang ditetapkan.

    • Pengguna yang ditetapkan

      1. Pilih identitas:

        Cuplikan layar memperlihatkan halaman Identitas aplikasi logika Konsumsi dengan tab yang dipilih bernama Pengguna yang ditetapkan.

      2. Salin ID Objek (utama) identitas:

        Cuplikan layar memperlihatkan halaman Gambaran Umum identitas yang ditetapkan pengguna aplikasi logika Konsumsi dengan ID objek (utama) dipilih.

Menemukan ID aplikasi untuk aplikasi Azure Enterprise yang terkait dengan identitas terkelola Anda

Saat Anda mengaktifkan identitas terkelola pada sumber daya aplikasi logika Anda, Azure secara otomatis membuat aplikasi Azure Enterprise terkait yang memiliki nama yang sama. Anda sekarang perlu menemukan aplikasi Enterprise terkait dan menyalin ID Aplikasinya. Nantinya, Anda menggunakan ID aplikasi ini untuk menambahkan idP untuk aplikasi fungsi Anda dengan membuat pendaftaran aplikasi.

  1. Di portal Azure, temukan dan buka penyewa Entra Anda.

  2. Pada menu penyewa, di bawah Kelola, pilih Aplikasi perusahaan.

  3. Pada halaman Semua aplikasi , di kotak pencarian, masukkan ID objek untuk identitas terkelola Anda. Dari hasilnya, temukan aplikasi perusahaan yang cocok, dan salin ID Aplikasi:

    Cuplikan layar memperlihatkan halaman penyewa Entra bernama Semua aplikasi, dengan ID objek aplikasi perusahaan di kotak pencarian, dan ID aplikasi yang cocok dipilih.

  4. Sekarang, gunakan ID aplikasi yang disalin untuk menambahkan idP ke aplikasi fungsi Anda.

Menambahkan penyedia identitas untuk aplikasi fungsi Anda (hanya alur kerja Konsumsi)

Setelah memiliki ID penyewa dan ID aplikasi, Anda dapat menyiapkan aplikasi fungsi untuk menggunakan autentikasi Microsoft Entra dengan menambahkan idP dan membuat pendaftaran aplikasi.

  1. Di portal Azure, buka aplikasi fungsi Anda.

  2. Di menu aplikasi fungsi, di bawah Pengaturan, pilih Autentikasi, lalu pilih Tambahkan penyedia identitas.

    Cuplikan layar memperlihatkan menu aplikasi fungsi dengan halaman Autentikasi dan opsi yang dipilih bernama Tambahkan IdP.

  3. Pada panel Tambahkan penyedia identitas, di bawah Dasar, dari daftar Penyedia identitas, pilih Microsoft.

  4. Di bawah Pendaftaran aplikasi, untuk jenis pendaftaran Aplikasi, pilih Berikan detail pendaftaran aplikasi yang ada, dan masukkan nilai yang sebelumnya Anda simpan.

    Properti Wajib Nilai Deskripsi
    ID aplikasi (klien) Ya <APPLICATION-ID> Pengidentifikasi unik yang digunakan untuk pendaftaran aplikasi ini. Untuk contoh ini, gunakan ID aplikasi yang Anda salin untuk aplikasi Enterprise yang terkait dengan identitas terkelola Anda.
    Rahasia Klien Opsional, tetapi disarankan <client-secret> Nilai rahasia yang digunakan aplikasi untuk membuktikan identitasnya saat meminta token. Rahasia klien dibuat dan disimpan dalam konfigurasi aplikasi Anda sebagai pengaturan aplikasi slot-sticky bernama MICROSOFT_PROVIDER_AUTHENTICATION_SECRET. Untuk mengelola rahasia di Azure Key Vault sebagai gantinya, Anda dapat memperbarui pengaturan ini nanti untuk menggunakan referensi Key Vault.

    - Jika Anda memberikan nilai rahasia klien, operasi masuk menggunakan alur hibrid, mengembalikan token akses dan refresh.

    - Jika Anda tidak memberikan rahasia klien, operasi masuk menggunakan alur hibah implisit OAuth 2.0, hanya mengembalikan token ID.

    Token ini dikirim oleh penyedia dan disimpan di toko token EasyAuth.
    URL Penerbit No <authentication-endpoint-URL>/<Entra-tenant-ID>/v2.0 URL ini mengalihkan pengguna ke penyewa Microsoft Entra yang benar dan mengunduh metadata yang sesuai untuk menentukan kunci penandatanganan token dan nilai klaim penerbit token yang sesuai. Untuk aplikasi yang menggunakan Azure AD v1, hapus /v2.0 dari URL.

    Untuk skenario ini, gunakan URL berikut: https://sts.windows.net/<Entra-tenant-ID>
    Audiens token yang diizinkan No <application-ID-URI> ID aplikasi URI (ID sumber daya) untuk aplikasi fungsi. Untuk aplikasi cloud atau server tempat Anda ingin mengizinkan token autentikasi dari aplikasi web, tambahkan ID aplikasi URI untuk aplikasi web. ID klien yang dikonfigurasi selalu secara implisit dianggap sebagai audiens yang diizinkan.

    Dalam skenario ini, nilainya adalah https://management.azure.com. Nantinya, Anda dapat menggunakan URI yang sama di properti Audiens saat menyiapkan tindakan fungsi dalam alur kerja guna menggunakan identitas terkelola.

    Penting: URI ID aplikasi (ID sumber daya) harus sama persis dengan nilai yang diharapkan ID Microsoft Entra, termasuk garis miring berikutnya yang diperlukan.

    Pada titik ini, versi Anda terlihat mirip dengan contoh ini:

    Cuplikan layar memperlihatkan pendaftaran aplikasi untuk aplikasi logika dan idP Anda untuk aplikasi fungsi Anda.

    Jika Anda menyiapkan aplikasi fungsi dengan penyedia identitas untuk pertama kalinya, bagian pengaturan autentikasi App Service juga muncul. Opsi ini menentukan cara aplikasi fungsi Anda merespons permintaan yang tidak diautentikasi. Pilihan default mengalihkan semua permintaan untuk masuk dengan penyedia identitas baru. Anda dapat menyesuaikan perilaku ini sekarang atau menyesuaikan pengaturan ini nanti dari halaman Autentikasi utama dengan memilih Edit di samping pengaturan Autentikasi. Untuk mempelajari lebih lanjut tentang opsi ini, tinjau Alur autentikasi - Autentikasi dan otorisasi di Azure App Service dan Azure Functions.

    Jika tidak, Anda dapat melanjutkan ke langkah berikutnya.

  5. Untuk menyelesaikan pembuatan pendaftaran aplikasi, pilih Tambahkan.

    Setelah selesai, halaman Autentikasi sekarang mencantumkan idP dan ID aplikasi (klien) pendaftaran aplikasi. Aplikasi fungsi Anda sekarang dapat menggunakan pendaftaran aplikasi ini untuk autentikasi.

  6. Salin ID Aplikasi (klien) pendaftaran aplikasi untuk digunakan nanti di properti Audiens tindakan Azure Functions untuk alur kerja Anda.

    Cuplikan layar memperlihatkan idP baru untuk aplikasi fungsi.

  7. Kembali ke perancang dan ikuti langkah-langkah untuk mengautentikasi akses dengan identitas terkelola dengan menggunakan tindakan Azure Functions bawaan.

Langkah berikutnya