Menambahkan dan menjalankan kode JavaScript sebaris dengan alur kerja untuk Azure Logic Apps
Berlaku untuk: Azure Logic Apps (Konsumsi + Standar)
Untuk melakukan tugas integrasi kustom sebaris dengan alur kerja Anda di Azure Logic Apps, Anda dapat langsung menambahkan dan menjalankan cuplikan kode JavaScript sederhana dari alur kerja Anda di portal Azure. Untuk tugas ini, gunakan tindakan Kode Sebaris bernama Jalankan Kode JavaScript. Tindakan ini mengembalikan hasil dari cuplikan kode sehingga Anda dapat menggunakan output tersebut dalam tindakan alur kerja berikutnya. Tindakan ini juga memiliki batas yang berbeda, berdasarkan apakah Anda memiliki alur kerja Konsumsi atau Standar dan berfungsi paling baik untuk cuplikan kode dengan atribut berikut:
Perbuatan | Bahasa | Versi bahasa | Durasi eksekusi | Ukuran data | Catatan lain |
---|---|---|---|---|---|
Jalankan Kode JavaScript | JavaScript |
Standar: Node.js 16.x.x Konsumsi: Node.js 8.11.1 Untuk informasi lebih lanjut, lihat Objek bawaan standar. |
Menyelesaikan dalam 5 detik atau kurang. | Menangani data hingga ukuran 50 MB. | - Tidak perlu bekerja dengan tindakan Variabel, yang tidak didukung oleh tindakan. - Tidak mendukung fungsi require() untuk menjalankan JavaScript. |
Untuk menjalankan kode yang tidak sesuai dengan atribut ini, Anda dapat membuat dan memanggil fungsi menggunakan Azure Functions.
Panduan ini memperlihatkan cara kerja tindakan dalam contoh alur kerja yang dimulai dengan pemicu Outlook Office 365. Alur kerja berjalan saat email baru tiba di akun email Outlook terkait. Cuplikan kode sampel mengekstrak alamat email apa pun yang ada di isi email dan mengembalikan alamat tersebut sebagai output yang dapat Anda gunakan dalam tindakan berikutnya.
Diagram berikut menunjukkan sorotan dari contoh alur kerja:
Prasyarat
Akun dan langganan Azure. Jika Anda tidak memiliki langganan, daftar untuk mendapatkan akun Azure secara gratis.
Alur kerja aplikasi logika tempat Anda ingin menambahkan cuplikan kode Anda. Alur kerja harus sudah dimulai dengan pemicu.
Contoh artikel ini menggunakan pemicu Office 365 Outlook yang diberi nama Saat email baru tiba.
Jika Anda tidak memiliki alur kerja, lihat dokumentasi berikut ini:
Berdasarkan apakah Anda memiliki alur kerja aplikasi logika Konsumsi atau Standar, tinjau persyaratan berikut:
Alur kerja konsumsi
Tautkan ke akun integrasi, kosong atau sebaliknya, dari sumber daya aplikasi logika Anda.
Penting
Pastikan Anda menggunakan akun integrasi yang sesuai untuk kasus atau skenario penggunaan Anda.
Misalnya, akun integrasi Tingkat gratis hanya dimaksudkan untuk skenario dan beban kerja eksploratif, bukan skenario produksi, yang terbatas dalam penggunaan dan throughput, dan tidak didukung oleh perjanjian tingkat layanan (SLA).
Tingkat akun integrasi lainnya dikenakan biaya, tetapi termasuk dukungan SLA, menawarkan lebih banyak throughput, dan memiliki batasan yang lebih tinggi. Pelajari lebih lanjut tentang tingkatan akun integrasi, batasan, and harga.
Alur kerja standar
Tidak diperlukan akun integrasi.
Menambahkan tindakan Jalankan Kode JavaScript
Di portal Azure, buka alur kerja aplikasi logika Penggunaan Anda di perancang.
Di perancang, ikuti langkah-langkah umum ini untuk menambahkan tindakan Kode Sebaris bernama Jalankan Kode JavaScript ke alur kerja Anda.
Contoh ini menambahkan tindakan di bagian pemicu Office 365 Outlook. Secara default, tindakan berisi beberapa kode sampel, termasuk
return
pernyataan.Dalam kotak Kode yang ada, hapus kode sampel, dan masukkan kode Anda. Tulis kode yang akan Anda masukkan ke dalam metode, tetapi tanpa tanda tangan metode.
Tip
Saat kursor Anda berada di kotak Kode, daftar konten dinamis muncul. Meskipun Anda akan menggunakan daftar ini nanti, Anda dapat mengabaikan dan membiarkan daftar tersebut terbuka untuk saat ini. Jangan pilih Sembunyikan.
Jika Anda mulai mengetik kata kunci yang dikenali, daftar pelengkap otomatis muncul sehingga Anda dapat memilih dari kata kunci yang tersedia, misalnya:
Contoh cuplikan kode berikut pertama-tama membuat variabel bernama myResult yang menyimpan ekspresi reguler, yang menentukan pola agar cocok dalam teks input. Selanjutnya, kode tersebut menciptakan variabel bernama surel yang menyimpan kontan badan pesan email dari keluaran pemicu.
Dengan posisi kursor Anda masih dalam kotak Kode, dari daftar konten dinamis yang terbuka, temukan bagian Saat surel baru tiba, dan pilih properti Badan, yang mereferensikan badan pesan email.
Daftar konten dinamis menunjukkan output dari pemicu dan tindakan sebelumnya saat output tersebut cocok dengan format input untuk kotak edit yang saat ini berada dalam fokus. Daftar ini membuat output ini lebih mudah digunakan dan dirujuk dari alur kerja Anda. Untuk contoh ini, daftar tersebut menunjukkan output dari pemicu Outlook, termasuk properti Badan pesan surel.
Setelah Anda memilih properti Isi , tindakan Jalankan Kode JavaScript menyelesaikan token ke objek JSON baca-saja
workflowContext
, yang dapat digunakan cuplikan Anda sebagai input. ObjekworkflowContext
menyertakan properti yang memberi kode Anda akses ke output dari pemicu dan tindakan sebelumnya dalam alur kerja Anda, seperti properti pemicubody
, yang berbeda dari properti Badan pesan email. Untuk informasi selengkapnya tentang objekworkflowContext
, lihat Mereferensikan pemicu dan output tindakan menggunakan objek workflowContext di bagian selanjutnya pada artikel ini.Penting
Jika cuplikan kode Anda mereferensikan nama tindakan yang menyertakan operator titik (.), referensi tersebut harus mengapit nama tindakan ini dengan kurung siku ([]) dan tanda kutip (""), misalnya:
// Correct
workflowContext.actions["my.action.name"].body
// Incorrect
workflowContext.actions.my.action.name.body
Selain itu, dalam tindakan Jalankan Kode JavaScript, Anda harus menambahkan parameter Tindakan lalu menambahkan nama tindakan ini ke parameter tersebut. Untuk informasi selengkapnya, lihat Menambahkan dependensi sebagai parameter ke tindakan Jalankan Kode JavaScript nanti di artikel ini.
Untuk membedakan properti Badan pesan surel yang Anda pilih dari properti
body
pemicu, ganti nama propertibody
kedua menjadiBody
sebagai gantinya. Tambahkan titik koma penutup (;) di akhir untuk menyelesaikan pernyataan kode.Tindakan Jalankan Kode JavaScript tidak secara sintis memerlukan
return
pernyataan. Namun, dengan menyertakan pernyataanreturn
, Anda dapat dengan lebih mudah mereferensikan hasil tindakan nanti di alur kerja Anda dengan menggunakan token Hasil dalam tindakan selanjutnya.Dalam contoh ini, cuplikan kode menampilkan hasilnya dengan memanggil fungsi
match()
yang menemukan kecocokan dalam badan pesan surel dengan regex. Tindakan Buat tabel HTML kemudian menggunakan token Hasil untuk mereferensikan hasil dari tindakan Jalankan Kode JavaScript dan membuat satu hasil.Setelah selesai, simpan alur kerja.
Mereferensikan pemicu dan output tindakan dengan menggunakan objek workflowContext
Dari dalam cuplikan kode Anda pada perancang, Anda dapat menggunakan daftar konten dinamis untuk memilih token yang mereferensikan output dari pemicu atau tindakan sebelumnya. Saat Anda memilih token, tindakan Jalankan Kode JavaScript menyelesaikan token tersebut ke objek JSON baca-sajaworkflowContext
. Objek ini memberi kode Anda akses ke output dari pemicu, tindakan sebelumnya, dan alur kerja. Objek menggunakan struktur berikut dan mencakup properti actions
, trigger
, dan workflow
, yang juga merupakan objek:
{
"workflowContext": {
"actions": {
"<action-name-1>": @actions('<action-name-1>'),
"<action-name-2>": @actions('<action-name-2>')
},
"trigger": {
@trigger()
},
"workflow": {
@workflow()
}
}
}
Tabel berikut ini memiliki informasi selengkapnya tentang properti ini:
Properti | Tipe | Deskripsi |
---|---|---|
actions |
Koleksi objek | Objek hasil dari tindakan sebelumnya yang dijalankan sebelum cuplikan kode Anda berjalan. Setiap objek memiliki pasangan kunci-nilai dengan ketentuan, kunci adalah nama tindakannya, dan nilainya setara dengan hasil dari memanggil fungsi actions() dengan ekspresi @actions('<action-name>') . Nama tindakan menggunakan nama tindakan yang sama yang muncul dalam definisi alur kerja yang mendasarinya, yang menggantikan spasi (" ") dalam nama tindakan dengan garis bawah (_). Koleksi objek ini menyediakan akses ke nilai properti tindakan dari eksekusi instans alur kerja saat ini. |
trigger |
Objek | Objek hasil dari pemicu dengan ketentuan hasilnya setara dengan memanggil fungsi trigger(). Objek ini menyediakan akses ke nilai properti pemicu dari eksekusi instans alur kerja saat ini. |
workflow |
Objek | Objek alur kerja yang setara untuk memanggil fungsi workflow(). Objek ini menyediakan akses ke nilai properti, seperti nama alur kerja, ID yang menjalankan, dan sebagainya, dari eksekusi instans alur kerja saat ini. |
Dalam contoh artikel ini, objek JSON workflowContext
mungkin memiliki properti sampel dan nilai berikut dari pemicu Outlook:
{
"workflowContext": {
"trigger": {
"name": "When_a_new_email_arrives",
"inputs": {
"host": {
"connection": {
"name": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group-name>/providers/Microsoft.Web/connections/office365"
}
},
"method": "get",
"path": "/Mail/OnNewEmail",
"queries": {
"includeAttachments": "False"
}
},
"outputs": {
"headers": {
"Pragma": "no-cache",
"Content-Type": "application/json; charset=utf-8",
"Expires": "-1",
"Content-Length": "962095"
},
"body": {
"Id": "AAMkADY0NGZhNjdhLTRmZTQtNGFhOC1iYjFlLTk0MjZlZjczMWRhNgBGAAAAAABmZwxUQtCGTqSPpjjMQeD",
"DateTimeReceived": "2019-03-28T19:42:16+00:00",
"HasAttachment": false,
"Subject": "Hello World",
"BodyPreview": "Hello World",
"Importance": 1,
"ConversationId": "AAQkADY0NGZhNjdhLTRmZTQtNGFhOC1iYjFlLTk0MjZlZjczMWRhNgAQ",
"IsRead": false,
"IsHtml": true,
"Body": "Hello World",
"From": "<sender>@<domain>.com",
"To": "<recipient-2>@<domain>.com;<recipient-2>@<domain>.com",
"Cc": null,
"Bcc": null,
"Attachments": []
}
},
"startTime": "2019-05-03T14:30:45.971564Z",
"endTime": "2019-05-03T14:30:50.1746874Z",
"scheduledTime": "2019-05-03T14:30:45.8778117Z",
"trackingId": "1cd5ffbd-f989-4df5-a96a-6e9ce31d03c5",
"clientTrackingId": "08586447130394969981639729333CU06",
"originHistoryName": "08586447130394969981639729333CU06",
"code": "OK",
"status": "Succeeded"
},
"workflow": {
"id": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group-name>/providers/Microsoft.Logic/workflows/<logic-app-workflow-name>",
"name": "<logic-app-workflow-name>",
"type": "Microsoft.Logic/workflows",
"location": "<Azure-region>",
"run": {
"id": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group-name>/providers/Microsoft.Logic/workflows/<logic-app-workflow-name>/runs/08586453954668694173655267965CU00",
"name": "08586453954668694173655267965CU00",
"type": "Microsoft.Logic/workflows/runs"
}
}
}
}
Menambahkan dependensi sebagai parameter ke tindakan Jalankan Kode JavaScript
Dalam beberapa skenario, Anda mungkin harus secara eksplisit mengharuskan tindakan Jalankan Kode JavaScript menyertakan output dari pemicu atau tindakan yang direferensikan kode Anda sebagai dependensi. Misalnya, Anda harus mengambil langkah tambahan ini saat kode Anda mereferensikan output yang tidak tersedia pada durasi alur kerja. Selama waktu pembuatan alur kerja, mesin Azure Logic Apps menganalisis cuplikan kode untuk menentukan apakah kode mereferensikan pemicu atau output tindakan apa pun. Jika referensi tersebut tersedia, mesin menyertakan output tersebut secara otomatis. Pada durasi alur kerja, jika pemicu atau output tindakan yang dirujuk tidak ditemukan di objek workflowContext
, mesin akan menghasilkan kesalahan. Untuk mengatasi kesalahan ini, Anda harus menambahkan pemicu atau tindakan tersebut sebagai dependensi eksplisit untuk tindakan Jalankan Kode JavaScript. Skenario lain yang mengharuskan Anda untuk mengambil langkah ini adalah ketika objek workflowContext
mereferensikan pemicu atau nama tindakan yang menggunakan operator titik (.).
Untuk menambahkan pemicu atau tindakan sebagai dependensi, Anda menambahkan parameter Pemicu atau Tindakan sebagaimana berlaku untuk tindakan Jalankan Kode JavaScript. Setelahnya, Anda menambahkan nama pemicu atau tindakan saat muncul dalam definisi JSON yang mendasar pada alur kerja Anda.
Catatan
Anda tidak dapat menambahkan operasi Variabel, perulangan seperti For each atau Until, dan indeks perulangan sebagai dependensi eksplisit.
Jika Anda berencana untuk menggunakan kembali kode Anda, pastikan untuk selalu menggunakan kotak edit cuplikan kode untuk mereferensikan pemicu dan output tindakan. Dengan begitu, kode Anda menyertakan referensi token yang diselesaikan, bukan hanya menambahkan output pemicu atau tindakan sebagai dependensi eksplisit.
Misalnya, tindakan Mengirim surel persetujuan konektor Office 365 Outlook mendahului cuplikan kode dalam alur kerja sampel. Contoh cuplikan kode berikut menyertakan referensi ke output SelectedOption dari tindakan ini.
Untuk contoh ini, Anda hanya harus menambahkan parameter Tindakan, lalu menambahkan nama JSON tindakan, Send_approval_email
, ke parameter tersebut. Dengan begitu, Anda menentukan bahwa tindakan Jalankan Kode JavaScript secara eksplisit menyertakan output dari tindakan Kirim email persetujuan.
Menemukan pemicu atau nama JSON tindakan
Sebelum memulai, Anda memerlukan nama JSON untuk pemicu atau tindakan dalam definisi alur kerja yang mendasar.
Nama dalam definisi alur kerja Anda menggunakan garis bawah (_), bukan spasi.
Jika nama tindakan menggunakan operator titik (.), sertakan operator tersebut, misalnya:
My.Action.Name
Pada toolbar perancang alur kerja, pilih Tampilan kode. Dalam objek
actions
, temukan nama tindakan.Misalnya,
Send_approval_email
adalah nama JSON untuk tindakan Kirim surel persetujuan.Untuk kembali ke tampilan perancang, pada bar alat tampilan kode, pilih Perancang.
Sekarang tambahkan nama JSON ke tindakan Jalankan Kode JavaScript.
Menambahkan pemicu atau nama tindakan ke tindakan Jalankan Kode JavaScript
Dalam tindakan Jalankan Kode JavaScript, buka daftar Tambahkan parameter baru.
Dari daftar parameter, pilih parameter berikut seperti yang diperlukan skenario Anda.
Parameter Deskripsi Tindakan Sertakan output dari tindakan sebelumnya sebagai dependensi. Saat memilih parameter ini, Anda akan diminta untuk tindakan yang ingin Anda tambahkan. Pemicu Sertakan output dari pemicu sebagai dependensi. Saat Anda memilih parameter ini, Anda akan ditanya apakah akan menyertakan hasil pemicu. Jadi, dari daftar Pemicu pilih Ya. Untuk contoh ini, pilih parameter Tindakan.
Dalam kotak Item Tindakan - 1, masukkan nama JSON tindakan.
Untuk menambahkan nama tindakan lain, pilih Menambahkan item baru.
Setelah selesai, simpan alur kerja.
Referensi tindakan
Untuk informasi lebih lanjut tentang struktur dan sintaks tindakan Menjalankan Kode JavaScript dalam definisi alur kerja yang mendasari Anda menggunakan Bahasa Definisi Alur Kerja, lihat pada tindakan ini yaitu bagian referensi.