Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: Azure Logic Apps (Konsumsi + Standar)
Azure Logic Apps mendukung semua jenis konten seperti JSON, XML, file datar, dan data biner. Meskipun beberapa jenis konten memiliki dukungan asli, yang berarti tidak memerlukan transmisi atau konversi, jenis konten lain memerlukan beberapa pekerjaan untuk memberi Anda format yang diperlukan.
Untuk membantu menentukan cara terbaik untuk menangani konten atau data dalam alur kerja, Azure Logic Apps menggunakan Content-Type nilai header dalam permintaan HTTP yang didapat alur kerja dari pemanggil eksternal.
Daftar berikut ini menyertakan beberapa contoh Content-Type nilai yang dapat ditemui alur kerja:
- application/json (jenis asli)
- teks/biasa (jenis asli)
- application/xml dan application/octet-stream
- Jenis konten lainnya
Panduan ini menjelaskan bagaimana Azure Logic Apps menangani berbagai jenis konten dan menunjukkan cara mentransmisikan atau mengonversi jenis ini dengan benar jika diperlukan.
application/json
Untuk permintaan HTTP di mana Content-Type nilai header adalah aplikasi/json, Azure Logic Apps menyimpan dan menangani konten sebagai objek JavaScript Object Notation (JSON). Secara default, Anda dapat mengurai konten JSON tanpa transmisi atau konversi apa pun. Anda juga dapat mengurai konten ini dengan menggunakan ekspresi.
Misalnya, ekspresi berikut menggunakan body() fungsi dengan My_action, yang merupakan nama JSON untuk tindakan pendahulu dalam alur kerja:
body('My_action')['client']['animal-type'][0]
Langkah-langkah berikut menjelaskan cara kerja ekspresi tanpa transmisi atau konversi:
Fungsi ini
body()mendapatkanbodyobjek output dariMy_actiontindakan.Dari objek yang dikembalikan
body, fungsi mengaksesclientobjek .Objek
clientberisi propertianimal-type, yang diatur ke array.Fungsi mengakses item pertama dalam array dan mengembalikan nilai anjing secara langsung tanpa pengubahan tipe atau konversi.
Jika Anda bekerja dengan data JSON yang tidak menggunakan Content-Type header, Anda dapat mengonversi data tersebut secara manual ke JSON dengan menggunakan fungsi json(), misalnya:
json(triggerBody())['client']['animal-type']
Fungsi
triggerBody()mendapatkan objekbodydari output pemicu alur kerja. Objek ini biasanya merupakan objek JSON.Sumber untuk
bodyobjek berasal dari permintaan HTTP masuk atau peristiwa yang diterima oleh pemicu alur kerja.Fungsi
json()secara eksplisit mengurai objek yang dikembalikan dari fungsibodysebagai objek JSON.Perilaku ini berguna, misalnya, ketika isi pemicu adalah string yang memerlukan penanganan sebagai JSON.
Perilaku ekspresi yang tersisa mirip dengan contoh sebelumnya.
Membuat token untuk properti JSON
Di Azure Logic Apps, Anda dapat menghasilkan token yang mudah digunakan yang mewakili properti dalam konten JSON. Anda kemudian dapat menggunakan token ini sehingga Anda dapat dengan lebih mudah mereferensikan properti ini dan nilainya dalam alur kerja Anda.
Daftar berikut ini menjelaskan operasi alur kerja umum dan cara terkait yang dapat Anda hasilkan token untuk properti dalam konten JSON:
Pemicu permintaan bernama Saat permintaan HTTP diterima
Saat Anda bekerja di perancang dengan pemicu Permintaan , Anda dapat secara opsional menyediakan skema JSON yang menentukan objek JSON, properti, dan jenis data yang diharapkan untuk setiap nilai properti. Jika Anda tidak memiliki skema JSON, Anda dapat memberikan contoh payload untuk menghasilkan skema JSON yang dapat Anda gunakan.
Pemicu menggunakan skema untuk mengurai konten JSON dari permintaan HTTP masuk dan menghasilkan token yang mewakili properti dalam konten JSON. Anda kemudian dapat dengan mudah mereferensikan dan menggunakan properti ini dan nilainya dalam tindakan berikutnya dalam alur kerja Anda.
Langkah-langkah berikut menjelaskan bagaimana Anda dapat memberikan contoh payload untuk menghasilkan skema JSON:
Pada perancang, pilih pemicu Permintaan untuk membuka panel informasi.
Pada tab Parameter , di bawah kotak Skema JSON Isi Permintaan , pilih Gunakan payload sampel untuk menghasilkan skema.
Dalam kotak Masukkan atau tempel sampel payload JSON , masukkan payload sampel, lalu pilih Selesai.
Skema yang dihasilkan sekarang muncul dalam pemicu Anda.
Di editor tampilan kode, Anda dapat meninjau definisi JSON yang mendasar untuk pemicu Permintaan :
"triggers": { "When_an_HTTP_request_is_received": { "type": "Request", "kind": "Http", "inputs": { "schema": { "type": "object", "properties": { "client": { "type": "object", "properties": { "animal-type": { "type": "array", "items": { "type": "string" }, }, "name": { "type": "string" } } } } } } } }Untuk memicu alur kerja Anda, dapatkan URL Alur Kerja atau URL HTTP pemicu, yang dihasilkan setelah Anda menyimpan alur kerja untuk pertama kalinya.
Untuk menguji alur kerja, gunakan alat atau aplikasi klien tempat Anda dapat mengirim permintaan HTTP ke URL alur kerja atau URL pemicu. Pastikan permintaan menyertakan header bernama Content-Type dan nilai header diatur ke application/json.
Mengurai tindakan JSON
Saat Anda menggunakan tindakan ini di perancang, Anda dapat mengurai output JSON dan menghasilkan token yang mudah digunakan yang mewakili properti dalam konten JSON Anda. Kemudian, Anda dapat dengan mudah mereferensikan dan menggunakan properti tersebut di seluruh alur kerja aplikasi logika Anda.
Mirip dengan Pemicu permintaan, Anda dapat menyediakan atau menghasilkan skema JSON yang menjelaskan konten JSON yang ingin Anda uraikan. Dengan demikian, Anda dapat lebih mudah mengonsumsi data dari Azure Service Bus, Azure Cosmos DB, dan sebagainya.
text/plain
Jika alur kerja Anda menerima permintaan HTTP di mana Content-Type nilai header adalah text/plain. Azure Logic Apps menyimpan dan menangani konten dalam bentuk mentah. Jika Anda mereferensikan atau menggunakan konten ini dalam tindakan alur kerja berikutnya tanpa casting atau konversi, permintaan keluar juga memiliki nilai header yang disetel ke Content-Type.
Misalnya, Anda bekerja dengan file datar, dan permintaan HTTP masuk memiliki nilai header Content-Type diatur ke text/plain.
Date,Name,Address
Oct-1,Frank,123 Ave
Jika Anda mengirim permintaan ini ke tindakan berikutnya yang menggunakan isi permintaan untuk mengirim permintaan lain, permintaan kedua juga memiliki Content-Type nilai header yang diatur ke text/plain. Jika Anda bekerja dengan data dalam teks biasa tetapi tidak menentukan header, Anda dapat secara manual mentransmisikan data ini ke teks dengan menggunakan string() fungsi , misalnya:
string(triggerBody())
application/xml dan application/octet-stream
Azure Logic Apps selalu mempertahankan Content-Type nilai header dalam permintaan atau respons HTTP masuk. Jika alur kerja Anda menerima konten dengan Content-Type diatur ke aplikasi/oktet-stream, dan Anda menyertakan konten tersebut dalam tindakan berikutnya tanpa transmisi, permintaan keluar juga diatur Content-Type ke application/octet-stream. Pendekatan ini memastikan bahwa data tidak tersesat saat bergerak melalui alur kerja. Dalam proses kerja dengan status tetap, keadaan, masukan, dan keluaran tindakan berikutnya disimpan dalam objek JSON saat kondisi bergerak melalui alur kerja.
Fungsi pengonversi
Untuk mempertahankan beberapa jenis data, Azure Logic Apps mengonversi konten menjadi string biner yang dikodekan base64. String ini memiliki metadata yang sesuai yang mempertahankan $content payload dan $content-type, yang secara otomatis dikonversi.
Daftar berikut ini menjelaskan cara Azure Logic Apps mengonversi konten saat Anda menggunakan fungsi tertentu:
-
json(): Melemparkan data keapplication/json. -
xml(): Melemparkan data keapplication/xml. -
binary(): Melemparkan data keapplication/octet-stream. -
string(): Melemparkan data ketext/plain. -
base64(): Mengonversi konten menjadi string yang dikodekan base64. -
base64toString(): Mengonversi string yang dikodekan base64 menjaditext/plain. -
base64toBinary(): Mengonversi string yang dikodekan base64 menjadiapplication/octet-stream. -
dataUri(): Mengonversi string ke URI data. -
dataUriToBinary(): Mengonversi URI data menjadi string biner. -
dataUriToString(): Mengonversi URI data menjadi string.
Misalnya, pemicu alur kerja Anda menerima permintaan HTTP di mana Content-Type diatur ke application/xml tempat konten terlihat seperti sampel berikut:
<?xml version="1.0" encoding="UTF-8" ?>
<CustomerName>Frank</CustomerName>
Anda dapat mentransmisikan konten ini dengan menggunakan ekspresi berikut, yang menggunakan xml() fungsi dan triggerBody() :
xml(triggerBody())
Anda kemudian dapat menggunakan konten yang dihasilkan dengan tindakan berikutnya dalam alur kerja. Atau, Anda mungkin menggunakan ekspresi berikut yang menggunakan fungsi xpath() dan xml() sebagai gantinya.
xpath(xml(triggerBody()), '/CustomerName')
Jenis konten lainnya
Azure Logic Apps mendukung jenis konten lain tetapi mungkin mengharuskan Anda mendapatkan isi pesan secara manual dari permintaan HTTP dengan mendekode $content variabel.
Misalnya, alur kerja Anda menerima permintaan HTTP di mana Content-Type diatur ke application/x-www-url-formencoded. Untuk mempertahankan semua data, isi permintaan menyertakan $content variabel tempat payload dikodekan sebagai string base64:
CustomerName=Frank&Address=123+Avenue
Tipe konten ini tidak dalam format teks biasa atau JSON, karena itu Azure Logic Apps menyimpan CustomerName=Frank&Address=123+Avenue menggunakan variabel $content-type dan $content berikut:
"body": {
"$content-type": "application/x-www-url-formencoded",
"$content": "AAB1241BACDFA=="
}
Azure Logic Apps juga menyertakan fungsi asli untuk menangani data formulir, misalnya:
Atau, Anda dapat mengakses data secara manual dengan menggunakan ekspresi seperti contoh berikut:
string(body('formdataAction'))
Untuk membuat permintaan keluar, gunakan application/x-www-url-formencoded sebagai nilai header Content-Type, tambahkan konten permintaan ke isi tindakan tanpa pengecualian dengan menggunakan ekspresi seperti body('formdataAction'). Metode ini hanya berfungsi jika isi tindakan adalah satu-satunya parameter dalam body objek input. Jika Anda menggunakan ekspresi body('formdataAction') dalam permintaan di mana tipe konten adalah application/json, Anda akan mengalami kesalahan saat runtime karena isi pesan dikirim dalam bentuk terenkripsi.