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.
Referensi ini menjelaskan jenis umum yang digunakan untuk mengidentifikasi pemicu dan tindakan dalam definisi alur kerja yang mendasari aplikasi logika Anda, yang dijelaskan dan divalidasi oleh Bahasa Pemrogram Definisi Alur Kerja. Untuk menemukan pemicu dan tindakan konektor tertentu yang dapat Anda gunakan di aplikasi logika Anda, lihat daftar di bawah gambaran umum Konektor.
Ikhtisar pemicu
Setiap alur kerja menyertakan pemicu, yang menentukan panggilan yang membuat instans dan memulai alur kerja. Berikut adalah kategori pemicu umum:
Pemicu polling , yang memeriksa titik akhir layanan secara berkala
Pemicu push , yang membuat langganan ke titik akhir dan menyediakan URL panggilan balik sehingga titik akhir dapat memberi tahu pemicu saat peristiwa yang ditentukan terjadi atau data tersedia. Pemicu kemudian menunggu respons titik akhir sebelum pengaktifan.
Pemicu memiliki elemen tingkat atas ini, meskipun beberapa bersifat opsional:
"<trigger-name>": {
"type": "<trigger-type>",
"inputs": { "<trigger-inputs>" },
"recurrence": {
"frequency": "<time-unit>",
"interval": <number-of-time-units>
},
"conditions": [ "<array-with-conditions>" ],
"runtimeConfiguration": { "<runtime-config-options>" },
"splitOn": "<splitOn-expression>",
"operationOptions": "<operation-option>"
},
Required
| Value | Type | Description |
|---|---|---|
| < nama pemicu> | String | Nama untuk pemicu |
| < jenis pemicu> | String | Jenis pemicu seperti "Http" atau "ApiConnection" |
| < input pemicu> | Objek JSON | Input yang menentukan perilaku pemicu |
| < unit waktu> | String | Satuan waktu yang menggambarkan seberapa sering pemicu diaktifkan: "Detik", "Menit", "Jam", "Hari", "Minggu", "Bulan" |
| < jumlah unit waktu> | Integer | Nilai yang menentukan seberapa sering pemicu diaktifkan berdasarkan frekuensi, yang merupakan jumlah unit waktu untuk menunggu hingga pemicu diaktifkan lagi Berikut adalah interval minimum dan maksimum: - Bulan: 1-16 bulan - Hari: 1-500 hari - Jam: 1-12.000 jam - Menit: 1-72.000 menit - Detik: 1-9.999.999 detik Misalnya, jika intervalnya adalah 6, dan frekuensinya adalah "Bulan", maka pengulangannya adalah setiap 6 bulan. |
Optional
| Value | Type | Description |
|---|---|---|
| < array-with-condition> | Array | Array yang berisi satu atau beberapa kondisi yang menentukan apakah akan menjalankan alur kerja. Hanya tersedia untuk pemicu. |
| < runtime-config-options> | Objek JSON | Anda dapat mengubah perilaku runtime bahasa umum pemicu dengan menyetel runtimeConfiguration properti. Untuk informasi selengkapnya, lihat Pengaturan konfigurasi runtime bahasa umum. |
| < splitOn-expression> | String | Untuk pemicu yang menampilkan array, Anda dapat menentukan ekspresi yang memisahkan atau memperdebatkan item array menjadi beberapa contoh alur kerja untuk diproses. |
| < opsi operasi> | String | Anda dapat mengubah perilaku default dengan menyetel operationOptions properti. Untuk informasi selengkapnya, lihat Opsi operasi. |
Daftar jenis pemicu
Setiap jenis pemicu memiliki antarmuka dan input berbeda yang menentukan perilaku pemicu.
Pemicu bawaan
| Jenis pemicu | Description |
|---|---|
| HTTP | Memeriksa atau melakukan polling titik akhir apa pun. Titik akhir ini harus sesuai dengan kontrak pemicu tertentu baik dengan menggunakan 202 pola asinkron atau dengan menampilkan array. |
| HTTPWebhook | Membuat titik akhir yang dapat dipanggil untuk aplikasi logika Anda tapi memanggil URL yang ditentukan untuk mendaftar atau tidak mendaftar. |
| Recurrence | Pengaktifan berdasarkan jadwal yang ditentukan. Anda dapat menyetel tanggal dan waktu mendatang untuk mengaktifkan pemicu ini. Berdasarkan frekuensi, Anda juga dapat menentukan waktu dan hari untuk menjalankan alur kerja Anda. |
| Request | Membuat titik akhir yang dapat dipanggil untuk aplikasi logika Anda dan juga dikenal sebagai pemicu "manual". Misalnya, lihat Memanggil, memicu, atau menyusun alur kerja dengan titik akhir HTTP. |
Pemicu API terkelola
| Jenis pemicu | Description |
|---|---|
| ApiConnection | Memeriksa atau melakukan polling titik akhir dengan menggunakan API yang dikelola Microsoft atau "konektor". |
| ApiConnectionWebhook | Membuat titik akhir yang dapat dipanggil untuk alur kerja aplikasi logika Anda dengan memanggil API yang dikelola Microsoft atau "konektor" untuk berlangganan dan berhenti berlangganan. |
Pemicu - Referensi detail
Pemicu APIConnection
Pemicu ini memeriksa atau melakukan polling titik akhir dengan menggunakan API yang dikelola Microsoft atau "konektor" sehingga parameter untuk pemicu ini dapat berbeda berdasarkan titik akhir. Banyak bagian dalam definisi pemicu ini bersifat opsional. Perilaku pemicu tergantung pada apakah bagian disertakan atau tidak.
"<APIConnection_trigger_name>": {
"type": "ApiConnection",
"inputs": {
"host": {
"connection": {
"name": "@parameters('$connections')['<connection-name>']['connectionId']"
}
},
"method": "<method-type>",
"path": "/<api-operation>",
"retryPolicy": { "<retry-behavior>" },
"queries": { "<query-parameters>" }
},
"recurrence": {
"frequency": "<time-unit>",
"interval": <number-of-time-units>
},
"runtimeConfiguration": {
"concurrency": {
"runs": <max-runs>,
"maximumWaitingRuns": <max-runs-queue>
}
},
"splitOn": "<splitOn-expression>",
"operationOptions": "<operation-option>"
}
Required
| Property | Value | Type | Description |
|---|---|---|---|
| None | < APIConnection_trigger_name> | String | Nama untuk pemicu |
| host.connection.name | < nama-koneksi> | String | Nama untuk koneksi ke API terkelola yang digunakan alur kerja |
| method | < jenis metode> | String | Metode HTTP untuk berkomunikasi dengan API terkelola: GET, PUT, POST, PATCH, DELETE |
| path | < operasi api> | String | Operasi API yang akan dipanggil |
| recurrence.frequency | < unit waktu> | String | Unit waktu yang menjelaskan seberapa sering pemicu diaktifkan: Detik, Menit, Jam, Hari, Minggu, Bulan |
| recurrence.interval | < jumlah unit waktu> | Integer | Nilai yang menentukan seberapa sering pemicu diaktifkan berdasarkan frekuensi, yang merupakan jumlah unit waktu untuk menunggu hingga pemicu diaktifkan lagi Berikut adalah interval minimum dan maksimum: - Bulan: 1-16 bulan - Hari: 1-500 hari - Jam: 1-12.000 jam - Menit: 1-72.000 menit - Kedua: 1-9.999.999 detik Misalnya, jika intervalnya adalah 6, dan frekuensinya adalah Bulan, pengulangannya adalah setiap 6 bulan. |
Optional
| Property | Value | Type | Description |
|---|---|---|---|
| retryPolicy | < perilaku coba lagi> | Objek JSON | Menyesuaikan perilaku mencoba kembali untuk kegagalan terputus-terputus, yang memiliki kode status 408, 429, serta 5XX, dan pengecualian konektivitas apa pun. Untuk informasi selengkapnya, lihat Kebijakan coba lagi. |
| queries | < parameter kueri> | Objek JSON | Parameter kueri apa pun yang disertakan dengan panggilan API. Misalnya, "queries": { "api-version": "2018-01-01" } objek ditambahkan ?api-version=2018-01-01 ke panggilan. |
| runtimeConfiguration.concurrency.runs | < max-runs> | Integer | Secara default, instans alur kerja berjalan pada saat yang sama (secara bersamaan atau paralel) hingga batas default. Untuk mengubah batas ini dengan mengatur nilai < baru>, lihat Mengubah konkurensi pemicu. |
| runtimeConfiguration.maximumWaitingRuns | < max-runs-queue> | Integer | Jika alur kerja Anda sudah menjalankan jumlah maksimum instans, setiap eksekusi baru dimasukkan ke dalam antrean ini hingga batas default. Untuk mengubah batas default, lihat Ubah batas eksekusi tunggu. Untuk mengubah jumlah maksimum instans, tentukan nilai untuk properti runtimeConfiguration.concurrency.runs . Catatan: Jika Anda mengatur |
| splitOn | < splitOn-expression> | String | Untuk pemicu yang menampilkan array, ekspresi ini mereferensikan array untuk digunakan sehingga Anda dapat membuat dan menjalankan instans alur kerja untuk setiap item array, daripada menggunakan perulangan "untuk setiap". Misalnya, ekspresi ini menunjukkan item dalam array yang ditampilkan dalam konten isi pemicu: @triggerbody()?['value'] |
| operationOptions | < opsi operasi> | String | Anda dapat mengubah perilaku default dengan menyetel operationOptions properti. Untuk informasi selengkapnya, lihat Opsi operasi. |
Outputs
| Element | Type | Description |
|---|---|---|
| headers | Objek JSON | header dari respons |
| body | Objek JSON | Isi dari respons |
| kode status | Integer | Kode status dari respons |
Example
Definisi pemicu ini memeriksa email setiap hari di dalam kotak masuk untuk akun kantor atau sekolah:
"When_a_new_email_arrives": {
"type": "ApiConnection",
"inputs": {
"host": {
"connection": {
"name": "@parameters('$connections')['office365']['connectionId']"
}
},
"method": "get",
"path": "/Mail/OnNewEmail",
"queries": {
"fetchOnlyWithAttachment": false,
"folderPath": "Inbox",
"importance": "Any",
"includeAttachments": false
}
},
"recurrence": {
"frequency": "Day",
"interval": 1
}
}
Pemicu ApiConnectionWebhook
Pemicu ini mengirim permintaan langganan ke titik akhir dengan menggunakan API yang dikelola Microsoft, menyediakan URL panggilan balik ke tempat titik akhir dapat mengirim respons, dan menunggu titik akhir merespons. Untuk informasi selengkapnya, lihat Langganan titik akhir.
"<ApiConnectionWebhook_trigger_name>": {
"type": "ApiConnectionWebhook",
"inputs": {
"body": {
"NotificationUrl": "@{listCallbackUrl()}"
},
"host": {
"connection": {
"name": "@parameters('$connections')['<connection-name>']['connectionId']"
}
},
"retryPolicy": { "<retry-behavior>" },
"queries": "<query-parameters>"
},
"runTimeConfiguration": {
"concurrency": {
"runs": <max-runs>,
"maximumWaitingRuns": <max-run-queue>
}
},
"splitOn": "<splitOn-expression>",
"operationOptions": "<operation-option>"
}
Required
| Value | Type | Description |
|---|---|---|
| < nama-koneksi> | String | Nama untuk koneksi ke API terkelola yang digunakan alur kerja |
| < konten isi> | Objek JSON | Konten pesan apa pun yang dikirim sebagai payload ke API terkelola |
Optional
| Value | Type | Description |
|---|---|---|
| < perilaku coba lagi> | Objek JSON | Menyesuaikan perilaku mencoba kembali untuk kegagalan terputus-terputus, yang memiliki kode status 408, 429, serta 5XX, dan pengecualian konektivitas apa pun. Untuk informasi selengkapnya, lihat Kebijakan coba lagi. |
| < parameter kueri> | Objek JSON | Parameter kueri apa pun untuk disertakan dengan panggilan API Misalnya, "queries": { "api-version": "2018-01-01" } objek ditambahkan ?api-version=2018-01-01 ke panggilan. |
| < max-runs> | Integer | Secara default, instans alur kerja berjalan pada saat yang sama (secara bersamaan atau paralel) hingga batas default. Untuk mengubah batas ini dengan mengatur nilai < baru>, lihat Mengubah konkurensi pemicu. |
| < max-runs-queue> | Integer | Saat alur kerja Anda sudah menjalankan jumlah maksimum instans, yang dapat Anda ubah berdasarkan runtimeConfiguration.concurrency.runs properti , setiap eksekusi baru dimasukkan ke dalam antrean ini hingga batas default. Untuk mengubah batas default, lihat Ubah batas eksekusi tunggu. |
| < splitOn-expression> | String | Untuk pemicu yang menampilkan array, ekspresi ini mereferensikan array untuk digunakan sehingga Anda dapat membuat dan menjalankan instans alur kerja untuk setiap item array, daripada menggunakan perulangan "untuk setiap". Misalnya, ekspresi ini menunjukkan item dalam array yang ditampilkan dalam konten isi pemicu: @triggerbody()?['value'] |
| < opsi operasi> | String | Anda dapat mengubah perilaku default dengan menyetel operationOptions properti. Untuk informasi selengkapnya, lihat Opsi operasi. |
Example
Definisi pemicu ini berlangganan API Office 365 Outlook, menyediakan URL panggilan balik ke titik akhir API, dan menunggu titik akhir merespons saat email baru tiba.
"When_a_new_email_arrives_(webhook)": {
"type": "ApiConnectionWebhook",
"inputs": {
"body": {
"NotificationUrl": "@{listCallbackUrl()}"
},
"host": {
"connection": {
"name": "@parameters('$connections')['office365']['connectionId']"
}
},
"path": "/MailSubscription/$subscriptions",
"queries": {
"folderPath": "Inbox",
"hasAttachment": "Any",
"importance": "Any"
}
},
"splitOn": "@triggerBody()?['value']"
}
Pemicu HTTP
Pemicu ini mengirimkan permintaan ke titik akhir HTTP atau HTTPS yang ditentukan berdasarkan jadwal pengulangan yang ditentukan. Pemicu kemudian memeriksa respons untuk menentukan apakah alur kerja berjalan. Untuk informasi selengkapnya, lihat Memanggil titik akhir layanan melalui HTTP atau HTTPS dari Azure Logic Apps.
"HTTP": {
"type": "Http",
"inputs": {
"method": "<method-type>",
"uri": "<HTTP-or-HTTPS-endpoint-URL>",
"headers": { "<header-content>" },
"queries": "<query-parameters>",
"body": "<body-content>",
"authentication": { "<authentication-type-and-property-values>" },
"retryPolicy": {
"type": "<retry-behavior>"
}
},
"recurrence": {
"frequency": "<time-unit>",
"interval": <number-of-time-units>
},
"runtimeConfiguration": {
"concurrency": {
"runs": <max-runs>,
"maximumWaitingRuns": <max-runs-queue>
}
},
"operationOptions": "<operation-option>"
}
Required
| Property | Value | Type | Description |
|---|---|---|---|
method |
< jenis metode> | String | Metode yang digunakan untuk mengirim permintaan keluar: "GET", "PUT", "POST", "PATCH", atau "DELETE" |
uri |
< HTTP-or-HTTPS-endpoint-URL> | String | URL titik akhir HTTP atau HTTPS tempat Anda ingin mengirim permintaan keluar. Ukuran string maksimum: 2 KB Untuk layanan atau sumber daya Azure, sintaks URI ini menyertakan ID sumber daya dan jalur ke sumber daya yang ingin Anda akses. |
frequency |
< unit waktu> | String | Satuan waktu yang menggambarkan seberapa sering pemicu diaktifkan: "Detik", "Menit", "Jam", "Hari", "Minggu", "Bulan" |
interval |
< jumlah unit waktu> | Integer | Nilai yang menentukan seberapa sering pemicu diaktifkan berdasarkan frekuensi, yang merupakan jumlah unit waktu untuk menunggu hingga pemicu diaktifkan lagi Berikut adalah interval minimum dan maksimum: - Bulan: 1-16 bulan - Hari: 1-500 hari - Jam: 1-12.000 jam - Menit: 1-72.000 menit - Detik: 1-9.999.999 detik Misalnya, jika intervalnya adalah 6, dan frekuensinya adalah "Bulan", maka pengulangannya adalah setiap 6 bulan. |
Optional
| Property | Value | Type | Description |
|---|---|---|---|
headers |
< header-content> | Objek JSON | Header apa pun yang perlu Anda sertakan dengan permintaan Misalnya, untuk mengatur bahasa dan jenis: "headers": { "Accept-Language": "en-us", "Content-Type": "application/json" } |
queries |
< parameter kueri> | Objek JSON | Parameter kueri apa pun yang perlu Anda gunakan dalam permintaan Misalnya, "queries": { "api-version": "2018-01-01" } objek ditambahkan ?api-version=2018-01-01 ke panggilan. |
body |
< konten isi> | Objek JSON | Konten pesan untuk dikirim sebagai payload dengan permintaan |
authentication |
< authentication-type-and-property-values> | Objek JSON | Model autentikasi yang digunakan permintaan untuk mengautentikasi permintaan keluar. Untuk informasi selengkapnya, lihat Menambahkan autentikasi ke panggilan keluar. Selain Scheduler, authority properti didukung. Saat tidak ditentukan, nilai defaultnya adalah https://management.azure.com/, tapi Anda dapat menggunakan nilai yang berbeda. |
retryPolicy > type |
< perilaku coba lagi> | Objek JSON | Menyesuaikan perilaku mencoba kembali untuk kegagalan terputus-terputus, yang memiliki kode status 408, 429, serta 5XX, dan pengecualian konektivitas apa pun. Untuk informasi selengkapnya, lihat Kebijakan coba lagi. |
runs |
< max-runs> | Integer | Secara default, instans alur kerja berjalan pada saat yang sama (secara bersamaan atau paralel) hingga batas default. Untuk mengubah batas ini dengan mengatur nilai < baru>, lihat Mengubah konkurensi pemicu. |
maximumWaitingRuns |
< max-runs-queue> | Integer | Saat alur kerja Anda sudah menjalankan jumlah maksimum instans, yang dapat Anda ubah berdasarkan runtimeConfiguration.concurrency.runs properti , setiap eksekusi baru dimasukkan ke dalam antrean ini hingga batas default. Untuk mengubah batas default, lihat Ubah batas eksekusi tunggu. |
operationOptions |
< opsi operasi> | String | Anda dapat mengubah perilaku default dengan menyetel operationOptions properti. Untuk informasi selengkapnya, lihat Opsi operasi. |
Outputs
| Element | Type | Description |
|---|---|---|
headers |
Objek JSON | header dari respons |
body |
Objek JSON | Isi dari respons |
status code |
Integer | Kode status dari respons |
Persyaratan untuk permintaan masuk
Agar berfungsi dengan baik dengan aplikasi logika Anda, titik akhir harus sesuai dengan pola pemicu atau kontrak tertentu, dan mengenali properti respons ini:
| Property | Required | Description |
|---|---|---|
| Kode status | Yes | Kode status "200 OK" mulai dijalankan. Kode status lainnya tidak mulai dijalankan. |
| Coba lagi header setelah | No | Jumlah detik hingga aplikasi logika Anda polling titik akhir lagi |
| Header lokasi | No | URL yang akan dipanggil pada interval polling berikutnya. Jika tidak ditentukan, URL asli akan digunakan. |
Contoh perilaku untuk permintaan yang berbeda
| Kode status | Coba lagi setelah | Behavior |
|---|---|---|
| 200 | {none} | Jalankan alur kerja, lalu periksa lagi data lainnya setelah pengulangan yang ditentukan. |
| 200 | 10 detik | Jalankan alur kerja, lalu periksa lagi data lainnya setelah 10 detik. |
| 202 | 60 detik | Jangan memicu alur kerja. Upaya berikutnya terjadi dalam satu menit, tergantung pada pengulangan yang ditentukan. Jika pengulangan yang ditentukan kurang dari satu menit, header coba lagi diutamakan. Jika tidak, pengulangan yang ditentukan digunakan. |
| 400 | {none} | Permintaan buruk, jangan jalankan alur kerja. Jika tidak retryPolicy didefinisikan, maka kebijakan default digunakan. Setelah mencapai jumlah pengulangan, pemicu memeriksa data lagi setelah pengulangan yang ditentukan. |
| 500 | {none} | Kesalahan server, jangan jalankan alur kerja. Jika tidak retryPolicy didefinisikan, maka kebijakan default digunakan. Setelah mencapai jumlah pengulangan, pemicu memeriksa data lagi setelah pengulangan yang ditentukan. |
Pemicu HTTPWebhook
Pemicu ini membuat aplikasi logika Anda dapat dihubungi dengan membuat titik akhir yang dapat mendaftarkan langganan dengan memanggil URL titik akhir yang ditentukan. Saat Anda membuat pemicu ini di alur kerja Anda, permintaan keluar melakukan panggilan untuk mendaftarkan langganan. Dengan begitu, pemicu bisa mulai mendengarkan peristiwa. Saat operasi membuat pemicu ini tidak valid, permintaan keluar secara otomatis melakukan panggilan untuk membatalkan langganan. Untuk informasi selengkapnya, lihat Langganan titik akhir.
Anda juga dapat menentukan batas asinkron pada pemicu HTTPWebhook . Perilaku pemicu tergantung pada bagian yang Anda gunakan atau hilangkan.
"HTTP_Webhook": {
"type": "HttpWebhook",
"inputs": {
"subscribe": {
"method": "<method-type>",
"uri": "<endpoint-subscribe-URL>",
"headers": { "<header-content>" },
"body": "<body-content>",
"authentication": { "<authentication-type>" },
"retryPolicy": { "<retry-behavior>" }
},
"unsubscribe": {
"method": "<method-type>",
"url": "<endpoint-unsubscribe-URL>",
"headers": { "<header-content>" },
"body": "<body-content>",
"authentication": { "<authentication-type>" }
}
},
"runTimeConfiguration": {
"concurrency": {
"runs": <max-runs>,
"maximumWaitingRuns": <max-runs-queue>
}
},
"operationOptions": "<operation-option>"
}
Beberapa nilai, seperti <jenis> metode, tersedia untuk "subscribe" objek dan "unsubscribe" .
Required
| Value | Type | Description |
|---|---|---|
| < jenis metode> | String | Metode HTTP yang digunakan untuk permintaan langganan: "GET", "PUT", "POST", "PATCH", atau "DELETE" |
| < ENDPOINT-subscribe-URL> | String | URL titik akhir tempat mengirim permintaan langganan |
Optional
| Value | Type | Description |
|---|---|---|
| < jenis metode> | String | Metode HTTP yang digunakan untuk permintaan pembatalan: "GET", "PUT", "POST", "PATCH", atau "DELETE" |
| < endpoint-unsubscribe-URL> | String | URL titik akhir tempat mengirim permintaan pembatalan |
| < konten isi> | String | Konten pesan apa pun yang akan dikirim dalam permintaan langganan atau pembatalan |
| < jenis autentikasi> | Objek JSON | Model autentikasi yang digunakan permintaan untuk mengautentikasi permintaan keluar. Untuk informasi selengkapnya, lihat Menambahkan autentikasi ke panggilan keluar. |
| < perilaku coba lagi> | Objek JSON | Menyesuaikan perilaku mencoba kembali untuk kegagalan terputus-terputus, yang memiliki kode status 408, 429, serta 5XX, dan pengecualian konektivitas apa pun. Untuk informasi selengkapnya, lihat Kebijakan coba lagi. |
| < max-runs> | Integer | Secara default, instans alur kerja semuanya berjalan pada saat yang sama (secara bersamaan atau paralel) hingga batas default. Untuk mengubah batas ini dengan mengatur nilai < baru>, lihat Mengubah konkurensi pemicu. |
| < max-runs-queue> | Integer | Saat alur kerja Anda sudah menjalankan jumlah maksimum instans, yang dapat Anda ubah berdasarkan runtimeConfiguration.concurrency.runs properti , setiap eksekusi baru dimasukkan ke dalam antrean ini hingga batas default. Untuk mengubah batas default, lihat Ubah batas eksekusi tunggu. |
| < opsi operasi> | String | Anda dapat mengubah perilaku default dengan menyetel operationOptions properti. Untuk informasi selengkapnya, lihat Opsi operasi. |
Outputs
| Element | Type | Description |
|---|---|---|
| headers | Objek JSON | header dari respons |
| body | Objek JSON | Isi dari respons |
| status code | Integer | Kode status dari respons |
Example
Pemicu ini membuat langganan ke titik akhir yang ditentukan, menyediakan URL panggilan balik yang unik, dan menunggu artikel teknologi yang baru diterbitkan.
"HTTP_Webhook": {
"type": "HttpWebhook",
"inputs": {
"subscribe": {
"method": "POST",
"uri": "https://pubsubhubbub.appspot.com/subscribe",
"body": {
"hub.callback": "@{listCallbackUrl()}",
"hub.mode": "subscribe",
"hub.topic": "https://pubsubhubbub.appspot.com/articleCategories/technology"
},
},
"unsubscribe": {
"method": "POST",
"url": "https://pubsubhubbub.appspot.com/subscribe",
"body": {
"hub.callback": "@{workflow().endpoint}@{listCallbackUrl()}",
"hub.mode": "unsubscribe",
"hub.topic": "https://pubsubhubbub.appspot.com/articleCategories/technology"
}
}
}
}
Pemicu pengulangan
Pemicu ini berjalan berdasarkan jadwal pengulangan yang ditentukan dan menyediakan cara mudah untuk membuat alur kerja yang berjalan secara teratur.
"Recurrence": {
"type": "Recurrence",
"recurrence": {
"frequency": "<time-unit>",
"interval": <number-of-time-units>,
"startTime": "<start-date-time-with-format-YYYY-MM-DDThh:mm:ss>",
"timeZone": "<time-zone>",
"schedule": {
// Applies only when frequency is Day or Week. Separate values with commas.
"hours": [ <one-or-more-hour-marks> ],
// Applies only when frequency is Day or Week. Separate values with commas.
"minutes": [ <one-or-more-minute-marks> ],
// Applies only when frequency is Week. Separate values with commas.
"weekDays": [ "Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday" ]
}
},
"runtimeConfiguration": {
"concurrency": {
"runs": <max-runs>,
"maximumWaitingRuns": <max-runs-queue>
}
},
"operationOptions": "<operation-option>"
}
Required
| Value | Type | Description |
|---|---|---|
| < unit waktu> | String | Satuan waktu yang menggambarkan seberapa sering pemicu diaktifkan: "Detik", "Menit", "Jam", "Hari", "Minggu", "Bulan" |
| < jumlah unit waktu> | Integer | Nilai yang menentukan seberapa sering pemicu diaktifkan berdasarkan frekuensi, yang merupakan jumlah unit waktu untuk menunggu hingga pemicu diaktifkan lagi Berikut adalah interval minimum dan maksimum: - Bulan: 1-16 bulan - Hari: 1-500 hari - Jam: 1-12.000 jam - Menit: 1-72.000 menit - Detik: 1-9.999.999 detik Misalnya, jika intervalnya adalah 6, dan frekuensinya adalah "Bulan", maka pengulangannya adalah setiap 6 bulan. |
Optional
| Value | Type | Description |
|---|---|---|
| < start-date-time-with-format-YYYY-MM-DDThh:mm:ss> | String | Tanggal dan waktu mulai dalam format ini: YYYY-MM-DDThh:mm:ss jika Anda menentukan zona waktu -or- YYYY-MM-DDThh:mm:ssZ jika Anda tidak menentukan zona waktu Jadi misalnya, jika Anda ingin 18 September 2017 pukul 14.00, maka tentukan "18--09-2017T14:00:00" dan tentukan zona waktu seperti "Waktu Standar Pasifik", atau tentukan "18-09-2017T14:00:00Z" tanpa zona waktu. Catatan: Waktu mulai ini memiliki maksimum 49 tahun di masa depan dan harus mengikuti spesifikasi waktu tanggal ISO 8601 dalam format waktu tanggal UTC, tapi tanpa offset UTC. Jika Anda tidak menentukan zona waktu, Anda harus menambahkan huruf "Z" di akhir tanpa spasi. "Z" ini mengacu pada waktu bahariyang ekuivalen. Untuk jadwal sederhana, waktu mulai adalah kejadian pertama, sedangkan untuk jadwal kompleks, pemicu tidak aktif lebih cepat dari waktu mulai. Untuk informasi selengkapnya tentang tanggal dan waktu mulai, lihat Membuat dan menjadwalkan tugas yang berjalan secara rutin. |
| < zona waktu> | String | Hanya berlaku saat Anda menentukan waktu mulai karena pemicu ini tidak menerima offset UTC. Tentukan zona waktu yang ingin Anda terapkan. |
| < tanda satu jam atau lebih> | Bilangan bulat atau array bilangan bulat | Jika Anda menentukan "Hari" atau "Minggu" untuk frequency, Anda dapat menentukan satu atau beberapa bilangan bulat dari 0 hingga 23, dipisahkan dengan koma, sebagai jam dalam sehari saat Anda ingin menjalankan alur kerja. Misalnya, jika Anda menentukan "10", "12", dan "14", Anda mendapatkan 10.00, 12.00, dan 14.00 sebagai tanda jam. |
| < tanda satu atau beberapa menit> | Bilangan bulat atau array bilangan bulat | Jika Anda menentukan "Hari" atau "Minggu" untuk frequency, Anda dapat menentukan satu atau beberapa bilangan bulat dari 0 hingga 59, dipisahkan dengan koma, sebagai menit dalam sejam saat Anda ingin menjalankan alur kerja. Misalnya, Anda dapat menentukan "30" sebagai tanda menit dan menggunakan contoh sebelumnya selama berjam-jam dalam sehari, Anda mendapatkan 10.30, 12.30, dan 14.30. |
| weekDays | String atau array string | Jika Anda menentukan "Minggu" untuk frequency, Anda dapat menentukan satu atau beberapa hari, dipisahkan dengan koma, saat Anda ingin menjalankan alur kerja: "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu", dan "Minggu" |
| < max-runs> | Integer | Secara default, instans alur kerja semuanya berjalan pada saat yang sama (secara bersamaan atau paralel) hingga batas default. Untuk mengubah batas ini dengan mengatur nilai < baru>, lihat Mengubah konkurensi pemicu. |
| < max-runs-queue> | Integer | Saat alur kerja Anda sudah menjalankan jumlah maksimum instans, yang dapat Anda ubah berdasarkan runtimeConfiguration.concurrency.runs properti , setiap eksekusi baru dimasukkan ke dalam antrean ini hingga batas default. Untuk mengubah batas default, lihat Ubah batas eksekusi tunggu. |
| < opsi operasi> | String | Anda dapat mengubah perilaku default dengan menyetel operationOptions properti. Untuk informasi selengkapnya, lihat Opsi operasi. |
Contoh 1
Pemicu pengulangan dasar ini berjalan setiap hari:
"Recurrence": {
"type": "Recurrence",
"recurrence": {
"frequency": "Day",
"interval": 1
}
}
Contoh 2
Anda dapat menentukan tanggal dan waktu mulai untuk mengaktifkan pemicu. Pemicu pengulangan ini dimulai pada tanggal yang ditentukan lalu aktif setiap hari:
"Recurrence": {
"type": "Recurrence",
"recurrence": {
"frequency": "Day",
"interval": 1,
"startTime": "2017-09-18T00:00:00Z"
}
}
Contoh 3
Pemicu pengulangan ini dimulai pada 9 September 2017 pukul 14.00, dan aktif setiap minggu setiap Senin pukul 10.30, 12.30, dan 14.30 Waktu Standar Pasifik:
"Recurrence": {
"type": "Recurrence",
"recurrence": {
"frequency": "Week",
"interval": 1,
"schedule": {
"hours": [ 10, 12, 14 ],
"minutes": [ 30 ],
"weekDays": [ "Monday" ]
},
"startTime": "2017-09-07T14:00:00",
"timeZone": "Pacific Standard Time"
}
}
Untuk informasi selengkapnya serta contoh pemicu ini, lihat Membuat dan menjadwalkan tugas yang berjalan secara rutin.
Pemicu permintaan
Pemicu ini membuat aplikasi logika Anda dapat dipanggil dengan membuat titik akhir yang dapat menerima permintaan masuk. Untuk pemicu ini, berikan skema JSON yang menjelaskan dan memvalidasi muatan atau input yang diterima pemicu dari permintaan masuk. Skema ini juga membuat properti pemicu lebih mudah direferensikan dari tindakan di kemudian hari dalam alur kerja.
Note
Nama asli untuk pemicu Permintaanadalah manual, yang mungkin masih muncul di beberapa tempat. Nama ini berubah untuk membuat lebih banyak konsistensi di sekitar jenis pola alur kerja yang Anda gunakan pemicu untuk membangun.
Untuk memanggil pemicu ini, Anda harus menggunakan listCallbackUrl API, yang dijelaskan dalam REST API Layanan Alur Kerja. Untuk mempelajari cara menggunakan pemicu ini sebagai titik akhir HTTP, lihat Alur kerja panggilan, pemicu, atau lapis dengan titik akhir HTTP.
"Request": {
"type": "Request",
"kind": "Http",
"inputs": {
"method": "<method-type>",
"relativePath": "<relative-path-for-accepted-parameter>",
"schema": {
"type": "object",
"properties": {
"<property-name>": {
"type": "<property-type>"
}
},
"required": [ "<required-properties>" ]
}
},
"runTimeConfiguration": {
"concurrency": {
"runs": <max-runs>,
"maximumWaitingRuns": <max-run-queue>
},
},
"operationOptions": "<operation-option>"
}
Required
| Value | Type | Description |
|---|---|---|
| < nama properti> | String | Nama properti dalam skema JSON, yang menggambarkan payload |
| < jenis properti> | String | Jenis properti |
Optional
| Value | Type | Description |
|---|---|---|
| < jenis metode> | String | Metode yang harus digunakan permintaan masuk untuk memanggil aplikasi logika Anda: "GET", "PUT", "POST", "PATCH", "DELETE" |
| < relative-path-for-accepted-parameter> | String | Jalur relatif untuk parameter yang dapat diterima URL titik akhir Anda |
| < properti yang diperlukan> | Array | Satu atau beberapa properti yang memerlukan nilai |
| < max-runs> | Integer | Secara default, instans alur kerja semuanya berjalan pada saat yang sama (secara bersamaan atau paralel) hingga batas default. Untuk mengubah batas ini dengan mengatur nilai < baru>, lihat Mengubah konkurensi pemicu. |
| < max-runs-queue> | Integer | Saat alur kerja Anda sudah menjalankan jumlah maksimum instans, yang dapat Anda ubah berdasarkan runtimeConfiguration.concurrency.runs properti , setiap eksekusi baru dimasukkan ke dalam antrean ini hingga batas default. Untuk mengubah batas default, lihat Ubah batas eksekusi tunggu. |
| < opsi operasi> | String | Anda dapat mengubah perilaku default dengan menyetel operationOptions properti. Untuk informasi selengkapnya, lihat Opsi operasi. |
Example
Pemicu ini menentukan bahwa permintaan masuk harus menggunakan metode HTTP POST untuk memanggil pemicu dan menyertakan skema yang memvalidasi input dari permintaan masuk:
"Request": {
"type": "Request",
"kind": "Http",
"inputs": {
"method": "POST",
"schema": {
"type": "object",
"properties": {
"customerName": {
"type": "String"
},
"customerAddress": {
"type": "Object",
"properties": {
"streetAddress": {
"type": "string"
},
"city": {
"type": "string"
}
}
}
}
}
}
}
Kondisi pemicu
Untuk pemicu apa pun, dan hanya pemicu, Anda bisa menyertakan array yang berisi satu atau beberapa ekspresi untuk kondisi yang menentukan apakah alur kerja harus berjalan. Untuk menambahkan conditions properti ke pemicu di alur kerja Anda, buka aplikasi logika Anda di editor tampilan kode.
Misalnya, Anda dapat menentukan bahwa pemicu hanya aktif saat situs web menampilkan kesalahan server internal dengan mereferensikan kode status pemicu di conditions properti:
"Recurrence": {
"type": "Recurrence",
"recurrence": {
"frequency": "Hour",
"interval": 1
},
"conditions": [ {
"expression": "@equals(triggers().code, 'InternalServerError')"
} ]
}
Secara default, pemicu hanya akan aktif setelah mendapatkan respons "200 OK". Saat ekspresi mereferensikan kode status pemicu, perilaku default pemicu diganti. Jadi, jika Anda ingin pemicu aktif untuk lebih dari satu kode status, seperti kode status "200" dan "201", Anda harus menyertakan ekspresi ini sebagai kondisi Anda:
@or(equals(triggers().code, 200),equals(triggers().code, 201))
Memicu beberapa alur kerja berjalan pada array
Dalam skenario di mana alur kerja Anda menggunakan pemicu yang menerima array untuk diproses, terkadang menggunakan untuk setiap perulangan mungkin memakan waktu terlalu lama. Untuk mempercepat pemrosesan, salah satu opsinya adalah membuat cabang paralel. Atau, jika pemicu mendukung debatching, Anda dapat memicu pemicu membagi item array dan menjalankan instans alur kerja terpisah untuk setiap item array. Opsi ini berguna, misalnya, ketika Anda ingin melakukan polling titik akhir yang mungkin mengembalikan beberapa item baru di antara interval polling.
Hanya pemicu yang dapat menerima array dan menampilkan array yang mendukung kemampuan ini seperti Permintaan, HTTP, Azure Service Bus, atau Office Outlook 365. Untuk pemicu ini, di perancang alur kerja, Anda dapat mengaktifkan pengaturan PisahkansplitOn pada, yang menambahkan properti ke definisi pemicu.
Note
Jika file Swagger pemicu menjelaskan payload yang merupakan array, splitOn properti secara otomatis ditambahkan ke definisi pemicu Anda. Jika tidak, dan pemicu dapat menerima array, Anda dapat menambahkan properti ke payload respons yang berisi array yang ingin Anda debat.
Sebelum Anda menggunakan kemampuan debatching, tinjau pertimbangan berikut:
Jika konkurensi pemicu juga diaktifkan, batas Pisahkan pada berkurang secara signifikan. Jika jumlah item melebihi batas ini, kemampuan Pisahkan pada tidak tersedia.
Kemampuan Pisahkan pada tidak berfungsi dengan pola respons sinkron. Jika alur kerja menggunakan tindakan Respons dan mengaktifkan pengaturan Pisahkan saat berjalan secara asinkron dan segera mengirim
202 ACCEPTEDrespons.Batas ada pada jumlah item array yang dipisahkan dapat diproses dalam satu eksekusi alur kerja. Untuk informasi selengkapnya, lihat Batas perulangan dan batching.
Jika Anda menyiapkan debatching melalui definisi pemicu dengan menggunakan
splitOnproperti , Anda tidak dapat langsung mereferensikan atau mengakses properti yang ada di luar array. Untuk menghindari kegagalan, awali referensi dengan?operator. Misalnya, lihat Mengaktifkan debatching dalam definisi pemicu.
Aktifkan debatching melalui perancang
Ikuti langkah-langkah ini dalam perancang alur kerja untuk menyiapkan debatching pada pemicu jika didukung:
Di [portal Microsoft Azure], buka sumber daya aplikasi logika Anda.
Buka alur kerja Anda di perancang.
Di perancang, pilih pemicu yang mendukung debatching untuk membuka panel informasi pemicu.
Pada tab Pengaturan , di bawah Umum, temukan pengaturan Pisahkan pada , dan ubah pengaturan menjadi Aktif jika tidak diaktifkan.
Mengaktifkan debatching dalam definisi pemicu
Beberapa pemicu menangani array, tetapi pengaturan Pisahkan saat tidak tersedia melalui perancang. Untuk pemicu tersebut splitOn , ikuti langkah-langkah berikut untuk menambahkan properti dalam definisi pemicu:
Misalnya, alur kerja Anda menggunakan pemicu HTTP untuk memanggil API dan mendapatkan respons berikut:
{
"Status": "Succeeded",
"Rows": [
{
"id": 938109380,
"name": "customer-name-one"
},
{
"id": 938109381,
"name": "customer-name-two"
}
]
}
Jika alur kerja Anda hanya memerlukan konten dari Rows array, Anda dapat menambahkan dan menyiapkan splitOn properti dalam definisi pemicu seperti yang ditunjukkan dalam contoh berikut:
"HTTP_trigger_debatch": {
"type": "Http",
"inputs": {
"uri": "https://mydomain.com/myAPI",
"method": "GET"
},
"recurrence": {
"frequency": "Second",
"interval": 1
},
"splitOn": "@triggerBody()?.Rows"
}
Note
Ingat, jika Anda menggunakan splitOn properti , Anda tidak dapat langsung mengakses atau mereferensikan properti yang ada di luar array. Untuk menghindari kegagalan, gunakan operator seperti yang ? ditunjukkan dalam contoh.
Definisi alur kerja Anda juga dapat menggunakan splitOn dan @triggerBody().name untuk mendapatkan nilai dari name properti . Nilai-nilai ini berasal "customer-name-one" dari eksekusi alur kerja pertama dan "customer-name-two" dari alur kerja kedua yang dijalankan. Untuk contoh ini, output pemicu terlihat seperti nilai berikut:
{
"body": {
"id": 938109380,
"name": "customer-name-one"
}
}
{
"body": {
"id": 938109381,
"name": "customer-name-two"
}
}
Gambaran umum tindakan
Microsoft Azure Logic Apps menyediakan berbagai jenis tindakan - masing-masing dengan input berbeda yang menentukan perilaku unik tindakan. Tindakan memiliki elemen tingkat tinggi ini, meskipun beberapa bersifat opsional:
"<action-name>": {
"type": "<action-type>",
"inputs": {
"<input-name>": { "<input-value>" },
"retryPolicy": "<retry-behavior>"
},
"runAfter": { "<previous-trigger-or-action-status>" },
"runtimeConfiguration": { "<runtime-config-options>" },
"operationOptions": "<operation-option>"
},
Required
| Value | Type | Description |
|---|---|---|
| < nama tindakan> | String | Nama untuk tindakan |
| < jenis tindakan> | String | Jenis tindakan, misalnya, "Http" atau "ApiConnection" |
| < nama input> | String | Nama untuk input yang mendefinisikan perilaku tindakan |
| < input-value> | Various | Nilai input, yang dapat menjadi string, bilangan bulat, objek JSON, dan sebagainya |
| < previous-trigger-or-action-status> | Objek JSON | Nama dan status yang dihasilkan untuk pemicu atau tindakan yang harus segera dijalankan sebelum tindakan saat ini dapat berjalan |
Optional
| Value | Type | Description |
|---|---|---|
| < perilaku coba lagi> | Objek JSON | Menyesuaikan perilaku mencoba kembali untuk kegagalan terputus-terputus, yang memiliki kode status 408, 429, serta 5XX, dan pengecualian konektivitas apa pun. Untuk informasi selengkapnya, lihat kebijakan Coba Lagi. |
| < runtime-config-options> | Objek JSON | Untuk beberapa tindakan, Anda dapat mengubah perilaku tindakan saat durasi dengan menyetel runtimeConfiguration properti. Untuk informasi selengkapnya, lihat Pengaturan konfigurasi runtime bahasa umum. |
| < opsi operasi> | String | Untuk beberapa tindakan, Anda dapat mengubah perilaku default dengan menyetel operationOptions properti. Untuk informasi selengkapnya, lihat Opsi operasi. |
Daftar jenis tindakan
Berikut adalah beberapa jenis tindakan yang umum digunakan:
Jenis tindakan bawaan seperti contoh ini dan lainnya:
HTTP untuk memanggil titik akhir melalui HTTP atau HTTPS
Respons untuk menanggapi permintaan
Menjalankan Kode JavaScript untuk menjalankan cuplikan kode JavaScript
Fungsi untuk memanggil Azure Functions
Tindakan operasi data seperti Gabung, Buat, Tabel, Pilih, dan lainnya yang membuat atau mengubah data dari berbagai input
Alur kerja untuk memanggil alur kerja aplikasi logika lain
Jenis tindakan API terkelola seperti ApiConnection dan ApiConnectionWebHook yang memanggil berbagai konektor dan API yang dikelola oleh Microsoft, misalnya, Azure Service Bus, Office 365 Outlook, Power BI, Azure Blob Storage, OneDrive, GitHub, dan banyak lagi
Mengontrol jenis tindakan alur kerja seperti If, Foreach, Switch, Scope, dan Until, yang berisi tindakan lain dan membantu Anda menata eksekusi alur kerja
Tindakan bawaan
| Jenis tindakan | Description |
|---|---|
| Compose | Membuat output tunggal dari input, yang dapat memiliki berbagai jenis. |
| Jalankan Kode JavaScript | Jalankan cuplikan kode JavaScript yang sesuai dengan kriteria tertentu. Untuk persyaratan kode dan informasi selengkapnya, lihat Menambahkan dan menjalankan cuplikan kode dengan kode sebaris. |
| Function | Memanggil Azure Function. |
| HTTP | Memanggil titik akhir HTTP. |
| Join | Membuat string dari semua item dalam array dan memisahkan item tersebut dengan karakter pemisah tertentu. |
| Mengurai JSON | Membuat token yang mudah digunakan dari properti dalam konten JSON. Anda kemudian dapat mereferensikan properti tersebut dengan menyertakan token di aplikasi logika Anda. |
| Query | Membuat string dari item dalam array lain berdasarkan kondisi atau filter. |
| Response | Membuat respons terhadap panggilan masuk atau permintaan. |
| Select | Membuat array dengan objek JSON dengan mengubah item dari array lain berdasarkan peta yang ditentukan. |
| Table | Membuat tabel CSV atau HTML dari array. |
| Terminate | Menghentikan alur kerja yang berjalan secara aktif. |
| Wait | Menjeda alur kerja Anda untuk durasi yang ditentukan atau hingga tanggal dan waktu yang ditentukan. |
| Workflow | Menumpuk alur kerja di dalam alur kerja lain. |
Tindakan API terkelola
| Jenis tindakan | Description |
|---|---|
| ApiConnection | Memanggil titik akhir HTTP dengan menggunakan API yang dikelola Microsoft. |
| ApiConnectionWebhook | Berfungsi seperti HTTP Webhook tetapi menggunakan API yang dikelola Microsoft. |
Mengontrol tindakan alur kerja
Tindakan ini membantu Anda mengontrol eksekusi alur kerja dan menyertakan tindakan lain. Dari luar tindakan alur kerja kontrol, Anda bisa langsung mereferensikan tindakan di dalam tindakan alur kerja kontrol tersebut. Misalnya, jika Anda memiliki Http tindakan di dalam lingkup, Anda bisa mereferensikan @body('Http') ekspresi dari mana saja dalam alur kerja. Namun, tindakan yang ada di dalam tindakan alur kerja kontrol hanya dapat "berjalan setelah" tindakan lain yang berada dalam struktur alur kerja kontrol yang sama.
| Jenis tindakan | Description |
|---|---|
| ForEach | Jalankan tindakan yang sama dalam perulangan untuk setiap item dalam array. |
| If | Jalankan tindakan berdasarkan apakah kondisi yang ditentukan benar atau salah. |
| Scope | Jalankan tindakan berdasarkan status grup dari serangkaian tindakan. |
| Switch | Jalankan tindakan yang diatur ke dalam kasus saat nilai dari ekspresi, objek, atau token cocok dengan nilai yang ditentukan oleh setiap kasus. |
| Until | Jalankan tindakan dalam perulangan hingga kondisi yang ditentukan benar. |
Tindakan - Referensi detail
Tindakan APIConnection
Tindakan ini mengirimkan permintaan HTTP ke API yang dikelola Microsoft dan memerlukan informasi tentang API dan parameter ditambah referensi ke koneksi yang valid.
"<action-name>": {
"type": "ApiConnection",
"inputs": {
"host": {
"connection": {
"name": "@parameters('$connections')['<api-name>']['connectionId']"
},
"<other-action-specific-input-properties>"
},
"method": "<method-type>",
"path": "/<api-operation>",
"retryPolicy": "<retry-behavior>",
"queries": { "<query-parameters>" },
"<other-action-specific-properties>"
},
"runAfter": {}
}
Required
| Value | Type | Description |
|---|---|---|
| < nama tindakan> | String | Nama tindakan yang disediakan oleh konektor |
| < nama api> | String | Nama API yang dikelola Microsoft yang digunakan untuk koneksi |
| < jenis metode> | String | Metode HTTP untuk memanggil API: "GET", "PUT", "POST", "PATCH", atau "DELETE" |
| < operasi api> | String | Operasi API yang akan dipanggil |
Optional
| Value | Type | Description |
|---|---|---|
| < other-action-specific-input-properties> | Objek JSON | Properti input lain yang berlaku untuk tindakan khusus ini |
| < perilaku coba lagi> | Objek JSON | Menyesuaikan perilaku mencoba kembali untuk kegagalan terputus-terputus, yang memiliki kode status 408, 429, serta 5XX, dan pengecualian konektivitas apa pun. Untuk informasi selengkapnya, lihat Kebijakan coba lagi. |
| < parameter kueri> | Objek JSON | Parameter kueri apa pun yang disertakan dengan panggilan API. Misalnya, "queries": { "api-version": "2018-01-01" } objek ditambahkan ?api-version=2018-01-01 ke panggilan. |
| < properti khusus tindakan lainnya> | Objek JSON | Properti lain yang berlaku untuk tindakan khusus ini |
Example
Definisi ini menguraikan tindakan Kirim email untuk konektor Office 365 Outlook, yang merupakan API yang dikelola Microsoft:
"Send_an_email": {
"type": "ApiConnection",
"inputs": {
"body": {
"Body": "Thank you for your membership!",
"Subject": "Hello and welcome!",
"To": "Sophie.Owen@contoso.com"
},
"host": {
"connection": {
"name": "@parameters('$connections')['office365']['connectionId']"
}
},
"method": "POST",
"path": "/Mail"
},
"runAfter": {}
}
Tindakan APIConnectionWebhook
Tindakan ini mengirim permintaan langganan melalui HTTP ke titik akhir dengan menggunakan API yang dikelola Microsoft, menyediakan URL panggilan balik ke tempat titik akhir dapat mengirim respons, dan menunggu titik akhir merespons. Untuk informasi selengkapnya, lihat Langganan titik akhir.
"<action-name>": {
"type": "ApiConnectionWebhook",
"inputs": {
"subscribe": {
"method": "<method-type>",
"uri": "<api-subscribe-URL>",
"headers": { "<header-content>" },
"body": "<body-content>",
"authentication": { "<authentication-type>" },
"retryPolicy": "<retry-behavior>",
"queries": { "<query-parameters>" },
"<other-action-specific-input-properties>"
},
"unsubscribe": {
"method": "<method-type>",
"uri": "<api-unsubscribe-URL>",
"headers": { "<header-content>" },
"body": "<body-content>",
"authentication": { "<authentication-type>" },
"<other-action-specific-properties>"
},
},
"runAfter": {}
}
Beberapa nilai, seperti <jenis> metode, tersedia untuk "subscribe" objek dan "unsubscribe" .
Required
| Value | Type | Description |
|---|---|---|
| < nama tindakan> | String | Nama tindakan yang disediakan oleh konektor |
| < jenis metode> | String | Metode HTTP yang digunakan untuk berlangganan atau berhenti berlangganan dari titik akhir: "GET", "PUT", "POST", "PATCH", atau "DELETE" |
| < API-subscribe-URL> | String | URI yang digunakan untuk berlangganan API |
Optional
| Value | Type | Description |
|---|---|---|
| < API-unsubscribe-URL> | String | URI yang digunakan untuk berhenti berlangganan dari API |
| < header-content> | Objek JSON | Header apa pun yang akan dikirim dalam permintaan Misalnya, untuk mengatur bahasa dan mengetik pada permintaan: "headers": { "Accept-Language": "en-us", "Content-Type": "application/json" } |
| < konten isi> | Objek JSON | Konten pesan apa pun yang akan dikirim dalam permintaan |
| < jenis autentikasi> | Objek JSON | Model autentikasi yang digunakan permintaan untuk mengautentikasi permintaan keluar. Untuk informasi selengkapnya, lihat Menambahkan autentikasi ke panggilan keluar. |
| < perilaku coba lagi> | Objek JSON | Menyesuaikan perilaku mencoba kembali untuk kegagalan terputus-terputus, yang memiliki kode status 408, 429, serta 5XX, dan pengecualian konektivitas apa pun. Untuk informasi selengkapnya, lihat Kebijakan coba lagi. |
| < parameter kueri> | Objek JSON | Parameter kueri apa pun untuk disertakan dengan panggilan API Misalnya, "queries": { "api-version": "2018-01-01" } objek ditambahkan ?api-version=2018-01-01 ke panggilan. |
| < other-action-specific-input-properties> | Objek JSON | Properti input lain yang berlaku untuk tindakan khusus ini |
| < properti khusus tindakan lainnya> | Objek JSON | Properti lain yang berlaku untuk tindakan khusus ini |
Anda juga dapat menentukan batasan pada tindakan ApiConnectionWebhook dengan cara yang sama seperti batas asinkron HTTP.
Buat tindakan
Tindakan ini membuat output tunggal dari beberapa input, termasuk ekspresi. Output dan input dapat memiliki jenis apa pun yang didukung oleh Azure Logic Apps secara asli, seperti array, objek JSON, XML, dan biner. Anda kemudian dapat menggunakan output tindakan di tindakan lain.
"Compose": {
"type": "Compose",
"inputs": "<inputs-to-compose>",
"runAfter": {}
},
Required
| Value | Type | Description |
|---|---|---|
| < inputs-to-compose> | Any | Input untuk membuat output tunggal |
Contoh 1
Definisi tindakan ini bergabung abcdefg dengan spasi berikutnya dan nilai 1234:
"Compose": {
"type": "Compose",
"inputs": "abcdefg 1234",
"runAfter": {}
},
Berikut adalah output yang dibuat oleh tindakan ini:
abcdefg 1234
Contoh 2
Definisi tindakan ini menggabungkan variabel string yang berisi abcdefg dan variabel bilangan bulat yang berisi 1234:
"Compose": {
"type": "Compose",
"inputs": "@{variables('myString')}@{variables('myInteger')}",
"runAfter": {}
},
Berikut adalah output yang dibuat oleh tindakan ini:
"abcdefg1234"
Jalankan tindakan Kode JavaScript
Tindakan ini menjalankan cuplikan kode JavaScript dan menampilkan hasilnya melalui token yang nantinya dapat direferensikan oleh tindakan selanjutnya dalam arus kerja.
"Execute_JavaScript_Code": {
"type": "JavaScriptCode",
"inputs": {
"code": "<JavaScript-code-snippet>",
"explicitDependencies": {
"actions": [ <preceding-actions> ],
"includeTrigger": true
}
},
"runAfter": {}
}
Required
| Value | Type | Description |
|---|---|---|
| < Cuplikan kode JavaScript> | Varies | Kode JavaScript yang ingin Anda jalankan. Untuk persyaratan kode dan informasi selengkapnya, lihat Menjalankan cuplikan kode dalam alur kerja. Dalam code atribut, cuplikan kode Anda dapat menggunakan objek baca-saja workflowContext sebagai input. Objek ini memiliki subproperti yang memberi akses pada kode Anda ke hasil dari pemicu dan tindakan sebelumnya di alur kerja Anda. Untuk informasi selengkapnya tentang workflowContext objek, lihat pemicu Referensi dan hasil tindakan menggunakan objek workflowContext. |
Diperlukan dalam beberapa kasus
explicitDependenciesAtribut menentukan bahwa Anda ingin secara eksplisit menyertakan hasil dari pemicu, tindakan sebelumnya, atau keduanya sebagai dependensi untuk cuplikan kode Anda. Untuk informasi selengkapnya tentang menambahkan dependensi ini, lihat Menambahkan dependensi sebagai parameter ke tindakan Kode Sebaris.
Untuk includeTrigger atribut, Anda dapat menentukan true atau false nilai.
| Value | Type | Description |
|---|---|---|
| < tindakan sebelumnya> | Array string | Array dengan nama tindakan dalam format JSON sebagai dependensi. Pastikan untuk menggunakan nama tindakan yang muncul dalam definisi alur kerja Anda di mana nama tindakan menggunakan garis bawah (_), bukan spasi (" "). |
Contoh 1
Tindakan ini menjalankan kode untuk mendapatkan nama alur kerja aplikasi logika Anda dan menampilkan teks "Halo dunia dari <logic-app-name>" sebagai hasilnya. Dalam contoh ini, kode mereferensikan nama alur kerja dengan mengakses workflowContext.workflow.name properti melalui objek baca-sajaworkflowContext. Untuk informasi selengkapnya tentang menggunakan workflowContext objek, lihat pemicu Referensi dan hasil tindakan dalam kode Anda.
"Execute_JavaScript_Code": {
"type": "JavaScriptCode",
"inputs": {
"code": "var text = \"Hello world from \" + workflowContext.workflow.name;\r\n\r\nreturn text;"
},
"runAfter": {}
}
Contoh 2
Tindakan ini menjalankan kode dalam alur kerja aplikasi logika yang dipicu saat email baru masuk ke akun Outlook. Alur kerja ini juga menggunakan tindakan Office 365 Outlook Kirim email persetujuan yang meneruskan konten dari email yang diterima bersama dengan permintaan persetujuan.
Kode mengekstrak alamat email dari properti pesan email Body, dan menampilkan alamat bersama dengan nilai properti SelectedOption dari tindakan persetujuan. Tindakan secara eksplisit menyertakan tindakan Kirim email persetujuan sebagai dependensi pada objek actions di dalam objek explicitDependencies.
"Execute_JavaScript_Code": {
"type": "JavaScriptCode",
"inputs": {
"code": "var myResult = /(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))/g;\r\n\r\nvar email = workflowContext.trigger.outputs.body.Body;\r\n\r\nvar reply = workflowContext.actions.Send_approval_email.outputs.body.SelectedOption;\r\n\r\nreturn email.match(myResult) + \" - \" + reply;\r\n;",
"explicitDependencies": {
"actions": [
"Send_approval_email"
]
}
},
"runAfter": {}
}
Tindakan fungsi
Tindakan ini memanggil fungsi Azure yang dibuat sebelumnya.
"<Azure-function-name>": {
"type": "Function",
"inputs": {
"function": {
"id": "<Azure-function-ID>"
},
"method": "<method-type>",
"headers": { "<header-content>" },
"body": { "<body-content>" },
"queries": { "<query-parameters>" }
},
"runAfter": {}
}
Required
| Value | Type | Description |
|---|---|---|
| < AZURE-function-ID> | String | ID sumber daya untuk fungsi Azure yang ingin Anda panggil. Berikut adalah format untuk nilai ini: "/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group>/providers/Microsoft.Web/sites/<Azure-function-app-name>/functions/<Azure-function-name>" |
| < jenis metode> | String | Metode HTTP yang digunakan untuk memanggil fungsi: "GET", "PUT", "POST", "PATCH", atau "DELETE" Jika tidak ditentukan, defaultnya adalah metode "POST". |
Optional
| Value | Type | Description |
|---|---|---|
| < header-content> | Objek JSON | Header apa pun yang akan dikirim dengan panggilan Misalnya, untuk mengatur bahasa dan mengetik pada permintaan: "headers": { "Accept-Language": "en-us", "Content-Type": "application/json" } |
| < konten isi> | Objek JSON | Konten pesan apa pun yang akan dikirim dalam permintaan |
| < parameter kueri> | Objek JSON | Parameter kueri apa pun untuk disertakan dengan panggilan API Misalnya, "queries": { "api-version": "2018-01-01" } objek ditambahkan ?api-version=2018-01-01 ke panggilan. |
| < other-action-specific-input-properties> | Objek JSON | Properti input lain yang berlaku untuk tindakan khusus ini |
| < properti khusus tindakan lainnya> | Objek JSON | Properti lain yang berlaku untuk tindakan khusus ini |
Saat Anda menyimpan aplikasi logika, Azure Logic Apps melakukan pemeriksaan ini pada fungsi yang dirujuk:
Alur kerja Anda harus memiliki akses ke fungsi tersebut.
Alur kerja Anda hanya dapat menggunakan pemicu HTTP standar atau pemicu webhook JSON generik.
Azure Logic Apps mendapatkan dan menyimpan URL pemicu, yang digunakan saat runtime. Namun, jika ada operasi yang membatalkan URL yang di-cache, tindakan Fungsi gagal pada runtime. Untuk memperbaiki masalah ini, simpan lagi aplikasi logika sehingga aplikasi logika tersebut mendapatkan dan meng-cache URL pemicu lagi.
Fungsi ini tidak dapat memiliki rute yang ditentukan.
Hanya tingkat otorisasi "fungsi" dan "anonim" yang diizinkan.
Example
Definisi tindakan ini memanggil fungsi "GetProductID" yang dibuat sebelumnya:
"GetProductID": {
"type": "Function",
"inputs": {
"function": {
"id": "/subscriptions/<XXXXXXXXXXXXXXXXXXXX>/resourceGroups/myLogicAppResourceGroup/providers/Microsoft.Web/sites/InventoryChecker/functions/GetProductID"
},
"method": "POST",
"headers": {
"x-ms-date": "@utcnow()"
},
"body": {
"Product_ID": "@variables('ProductID')"
}
},
"runAfter": {}
}
Tindakan HTTP
Tindakan ini mengirim permintaan ke titik akhir HTTP atau HTTPS yang ditentukan dan memeriksa respons untuk menentukan apakah alur kerja berjalan. Untuk informasi selengkapnya, lihat Memanggil titik akhir layanan melalui HTTP atau HTTPS dari Azure Logic Apps.
"HTTP": {
"type": "Http",
"inputs": {
"method": "<method-type>",
"uri": "<HTTP-or-HTTPS-endpoint-URL>",
"headers": { "<header-content>" },
"queries": { "<query-parameters>" },
"body": "<body-content>",
"authentication": { "<authentication-type-and-property-values>" },
"retryPolicy": {
"type": "<retry-behavior>"
},
},
"runAfter": {}
}
Required
| Property | Value | Type | Description |
|---|---|---|---|
method |
< jenis metode> | String | Metode yang digunakan untuk mengirim permintaan keluar: "GET", "PUT", "POST", "PATCH", atau "DELETE" |
uri |
< HTTP-or-HTTPS-endpoint-URL> | String | URL titik akhir HTTP atau HTTPS tempat Anda ingin mengirim permintaan keluar. Ukuran string maksimum: 2 KB Untuk layanan atau sumber daya Azure, sintaks URI ini menyertakan ID sumber daya dan jalur ke sumber daya yang ingin Anda akses. |
Optional
| Property | Value | Type | Description |
|---|---|---|---|
headers |
< header-content> | Objek JSON | Header apa pun yang perlu Anda sertakan dengan permintaan Misalnya, untuk mengatur bahasa dan jenis: "headers": { "Accept-Language": "en-us", "Content-Type": "application/json" } |
queries |
< parameter kueri> | Objek JSON | Parameter kueri apa pun yang perlu Anda gunakan dalam permintaan Misalnya, "queries": { "api-version": "2018-01-01" } objek ditambahkan ?api-version=2018-01-01 ke panggilan. |
body |
< konten isi> | Objek JSON | Konten pesan untuk dikirim sebagai payload dengan permintaan |
authentication |
< authentication-type-and-property-values> | Objek JSON | Model autentikasi yang digunakan permintaan untuk mengautentikasi permintaan keluar. Untuk informasi selengkapnya, lihat Menambahkan autentikasi ke panggilan keluar. Selain Scheduler, authority properti didukung. Saat tidak ditentukan, nilai defaultnya adalah https://management.azure.com/, tapi Anda dapat menggunakan nilai yang berbeda. |
retryPolicy > type |
< perilaku coba lagi> | Objek JSON | Menyesuaikan perilaku mencoba kembali untuk kegagalan terputus-terputus, yang memiliki kode status 408, 429, serta 5XX, dan pengecualian konektivitas apa pun. Untuk informasi selengkapnya, lihat Kebijakan coba lagi. |
| < other-action-specific-input-properties> | < input-property> | Objek JSON | Properti input lain yang berlaku untuk tindakan khusus ini |
| < properti khusus tindakan lainnya> | < nilai properti> | Objek JSON | Properti lain yang berlaku untuk tindakan khusus ini |
Example
Definisi tindakan ini mendapatkan berita terbaru dengan mengirim permintaan ke titik akhir yang ditentukan:
"HTTP": {
"type": "Http",
"inputs": {
"method": "GET",
"uri": "https://mynews.example.com/latest"
}
}
Gabungkan tindakan
Tindakan ini membuat string dari semua item dalam array dan memisahkan item tersebut dengan karakter pemisah tertentu.
"Join": {
"type": "Join",
"inputs": {
"from": <array>,
"joinWith": "<delimiter>"
},
"runAfter": {}
}
Required
| Value | Type | Description |
|---|---|---|
| < Array> | Array | Array atau ekspresi yang menyediakan item sumber. Jika Anda menentukan ekspresi, sertakan ekspresi tersebut dengan tanda kutip ganda. |
| < Pembatas> | String karakter tunggal | Karakter yang memisahkan setiap item dalam string |
Example
Misalkan Anda memiliki variabel "myIntegerArray" yang dibuat sebelumnya yang berisi array bilangan bulat ini:
[1,2,3,4]
Definisi tindakan ini mendapatkan nilai dari variabel dengan menggunakan variables() fungsi dalam ekspresi dan membuat string ini dengan nilai-nilai tersebut, yang dipisahkan dengan koma: "1,2,3,4"
"Join": {
"type": "Join",
"inputs": {
"from": "@variables('myIntegerArray')",
"joinWith": ","
},
"runAfter": {}
}
Mengurai tindakan JSON
Tindakan ini membuat bidang atau token yang mudah digunakan dari properti dalam konten JSON. Anda kemudian dapat mengakses properti tersebut di aplikasi logika Anda dengan menggunakan token sebagai gantinya. Misalnya, saat Anda ingin menggunakan output JSON dari layanan seperti Microsoft Azure Service Bus dan Microsoft Azure Cosmos DB, Anda dapat menyertakan tindakan ini di aplikasi logika Anda sehingga Anda dapat dengan lebih mudah mereferensikan data dalam output tersebut.
"Parse_JSON": {
"type": "ParseJson",
"inputs": {
"content": "<JSON-source>",
"schema": { "<JSON-schema>" }
},
"runAfter": {}
},
Required
| Value | Type | Description |
|---|---|---|
| < Sumber JSON> | Objek JSON | Konten JSON yang ingin Anda uraikan |
| < JSON-skema> | Objek JSON | Skema JSON yang menggambarkan konten JSON yang mendasarinya, yang digunakan tindakan untuk mengurai konten JSON sumber. Tips: Di perancang alur kerja, Anda dapat memberikan skema atau menyediakan payload sampel sehingga tindakan dapat menghasilkan skema. |
Example
Definisi tindakan ini membuat token ini yang dapat Anda gunakan dalam alur kerja Anda tetapi hanya dalam tindakan yang berjalan mengikuti tindakan Urai JSON :
FirstName, LastName, dan Email
"Parse_JSON": {
"type": "ParseJson",
"inputs": {
"content": {
"Member": {
"Email": "Sophie.Owen@contoso.com",
"FirstName": "Sophie",
"LastName": "Owen"
}
},
"schema": {
"type": "object",
"properties": {
"Member": {
"type": "object",
"properties": {
"Email": {
"type": "string"
},
"FirstName": {
"type": "string"
},
"LastName": {
"type": "string"
}
}
}
}
}
},
"runAfter": { }
},
Dalam contoh ini, properti "konten" menentukan konten JSON agar tindakan diurai. Anda juga dapat menyediakan konten JSON ini sebagai contoh payload untuk menghasilkan skema.
"content": {
"Member": {
"FirstName": "Sophie",
"LastName": "Owen",
"Email": "Sophie.Owen@contoso.com"
}
},
Properti "skema" menentukan skema JSON yang digunakan untuk menggambarkan konten JSON:
"schema": {
"type": "object",
"properties": {
"Member": {
"type": "object",
"properties": {
"FirstName": {
"type": "string"
},
"LastName": {
"type": "string"
},
"Email": {
"type": "string"
}
}
}
}
}
Tindakan kueri
Tindakan ini membuat array dari item dalam array lain berdasarkan kondisi atau filter yang ditentukan.
"Filter_array": {
"type": "Query",
"inputs": {
"from": <array>,
"where": "<condition-or-filter>"
},
"runAfter": {}
}
Required
| Value | Type | Description |
|---|---|---|
| < Array> | Array | Array atau ekspresi yang menyediakan item sumber. Jika Anda menentukan ekspresi, sertakan ekspresi tersebut dengan tanda kutip ganda. |
| < kondisi atau filter> | String | Kondisi yang digunakan untuk memfilter item dalam array sumber Catatan: Jika tidak ada nilai yang memenuhi kondisi, tindakan akan membuat array kosong. |
Example
Definisi tindakan ini membuat array yang memiliki nilai lebih besar dari nilai yang ditentukan, yaitu dua:
"Filter_array": {
"type": "Query",
"inputs": {
"from": [ 1, 3, 0, 5, 4, 2 ],
"where": "@greater(item(), 2)"
}
}
Tindakan respons
Tindakan ini membuat payload untuk respons terhadap permintaan HTTP.
"Response" {
"type": "Response",
"kind": "http",
"inputs": {
"statusCode": 200,
"headers": { <response-headers> },
"body": { <response-body> }
},
"runAfter": {}
},
Required
| Value | Type | Description |
|---|---|---|
| < kode status respons> | Integer | Kode status HTTP yang dikirim ke permintaan masuk. Kode default adalah "200 OK", tapi kode dapat menjadi kode status yang valid yang dimulai dengan 2xx, 4xx, atau 5xx, tapi tidak dengan 3xxx. |
Optional
| Value | Type | Description |
|---|---|---|
| < header respons> | Objek JSON | Satu atau beberapa header untuk disertakan dengan respons |
| < isi respons> | Various | Badan respons, yang dapat menjadi string, objek JavaScript Object Notation, atau bahkan konten biner dari tindakan sebelumnya |
Example
Definisi tindakan ini membuat respons terhadap permintaan HTTP dengan kode status, isi pesan, dan header pesan yang ditentukan:
"Response": {
"type": "Response",
"inputs": {
"statusCode": 200,
"body": {
"ProductID": 0,
"Description": "Organic Apples"
},
"headers": {
"x-ms-date": "@utcnow()",
"content-type": "application/json"
}
},
"runAfter": {}
}
Restrictions
Tidak seperti tindakan lain, tindakan Respons memiliki batasan khusus:
Alur kerja Anda dapat menggunakan tindakan Respons hanya ketika alur kerja dimulai dengan pemicu permintaan HTTP, yang berarti alur kerja Anda harus dipicu oleh permintaan HTTP.
Alur kerja Anda dapat menggunakan tindakan Respons di mana saja kecuali di dalam perulangan Foreach , Hingga perulangan, termasuk perulangan berurutan, dan cabang paralel.
Permintaan asli mendapatkan respons alur kerja Anda hanya ketika semua tindakan yang diperlukan oleh tindakan Respons selesai dalam batas waktu habis HTTP.
Namun, jika alur kerja Anda memanggil aplikasi logika lain sebagai alur kerja bertumpuk, alur kerja induk menunggu hingga alur kerja bertumpuk selesai, berapa pun waktu berlalu sebelum alur kerja bertumpuk selesai.
Saat alur kerja Anda menggunakan tindakan Respons dan pola respons sinkron, alur kerja juga tidak dapat menggunakan perintah splitOn dalam definisi pemicu karena perintah tersebut membuat beberapa eksekusi. Periksa kasus ini saat metode PUT digunakan, dan jika benar, tampilkan respons "permintaan buruk".
Jika tidak, jika alur kerja Anda menggunakan perintah splitOn dan tindakan Respons , alur kerja berjalan secara asinkron dan segera mengembalikan respons "202 DITERIMA".
Saat eksekusi alur kerja Anda mencapai tindakan Respons , tetapi permintaan masuk telah menerima respons, tindakan Respons ditandai sebagai "Gagal" karena konflik. Dan sebagai hasilnya, eksekusi aplikasi logika Anda juga ditandai dengan status "Gagal".
Pilih tindakan
Tindakan ini membuat array dengan objek JavaScript Object Notation dengan mengubah item dari array lain berdasarkan peta yang ditentukan. Array output dan array sumber selalu memiliki jumlah item yang sama. Meskipun Anda tidak dapat mengubah jumlah objek dalam array output, Anda dapat menambahkan atau menghapus properti dan nilainya di seluruh objek tersebut.
selectProperti menentukan setidaknya satu pasangan kunci-nilai yang menentukan peta untuk mengubah item dalam array sumber. Pasangan kunci-nilai mewakili properti dan nilainya di semua objek dalam array output.
"Select": {
"type": "Select",
"inputs": {
"from": <array>,
"select": {
"<key-name>": "<expression>",
"<key-name>": "<expression>"
}
},
"runAfter": {}
},
Required
| Value | Type | Description |
|---|---|---|
| < Array> | Array | Array atau ekspresi yang menyediakan item sumber. Pastikan Anda mengapit ekspresi dengan tanda kutip ganda. Catatan: Jika array sumber kosong, tindakan akan membuat array kosong. |
| < nama kunci> | String | Nama properti yang ditetapkan ke hasil dari <ekspresi> Untuk menambahkan properti baru di semua objek dalam array output, berikan <nama> kunci untuk properti tersebut dan <ekspresi> untuk nilai properti. Untuk menghapus properti dari semua objek dalam array, hilangkan < kunci untuk properti tersebut>. |
| < Ekspresi> | String | Ekspresi yang mengubah item dalam array sumber dan menetapkan hasilnya ke <nama kunci> |
Tindakan Pilih membuat array sebagai output, sehingga tindakan apa pun yang ingin menggunakan output ini harus menerima array, atau Anda harus mengonversi array menjadi jenis yang diterima tindakan konsumen. Misalnya, untuk mengonversi array output menjadi string, Anda dapat meneruskan array tersebut ke tindakan Buat , lalu mereferensikan output dari tindakan Buat di tindakan Anda yang lain.
Example
Definisi tindakan ini membuat array objek JavaScript Object Notation dari array bilangan bulat. Tindakan akan diiterasi melalui array sumber, mendapatkan setiap nilai bilangan bulat dengan menggunakan @item() ekspresi, dan menetapkan setiap nilai ke properti "number" di setiap objek JSON:
"Select": {
"type": "Select",
"inputs": {
"from": [ 1, 2, 3 ],
"select": {
"number": "@item()"
}
},
"runAfter": {}
},
Berikut adalah array yang dibuat oleh tindakan ini:
[ { "number": 1 }, { "number": 2 }, { "number": 3 } ]
Untuk menggunakan output array ini dalam tindakan lain, teruskan output ini ke dalam tindakan Buat :
"Compose": {
"type": "Compose",
"inputs": "@body('Select')",
"runAfter": {
"Select": [ "Succeeded" ]
}
},
Anda kemudian bisa menggunakan output dari tindakan Buat di tindakan Anda yang lain, misalnya, tindakan Office 365 Outlook - Kirim email :
"Send_an_email": {
"type": "ApiConnection",
"inputs": {
"body": {
"Body": "@{outputs('Compose')}",
"Subject": "Output array from Select and Compose actions",
"To": "<your-email@domain>"
},
"host": {
"connection": {
"name": "@parameters('$connections')['office365']['connectionId']"
}
},
"method": "post",
"path": "/Mail"
},
"runAfter": {
"Compose": [ "Succeeded" ]
}
},
Tindakan tabel
Tindakan ini membuat tabel CSV atau HTML dari array. Untuk array dengan objek JavaScript Object Notation, tindakan ini secara otomatis membuat header kolom dari nama properti objek. Untuk array dengan jenis data lain, Anda harus menentukan header dan nilai kolom. Misalnya, array ini menyertakan properti "ID" dan "Product_Name" yang dapat digunakan tindakan ini untuk nama header kolom:
[ {"ID": 0, "Product_Name": "Apples"}, {"ID": 1, "Product_Name": "Oranges"} ]
"Create_<CSV | HTML>_table": {
"type": "Table",
"inputs": {
"format": "<CSV | HTML>",
"from": <array>,
"columns": [
{
"header": "<column-name>",
"value": "<column-value>"
},
{
"header": "<column-name>",
"value": "<column-value>"
}
]
},
"runAfter": {}
}
Required
| Value | Type | Description |
|---|---|---|
| <CSV atau HTML> | String | Format untuk tabel yang ingin Anda buat |
| < Array> | Array | Array atau ekspresi yang menyediakan item sumber untuk tabel Catatan: Jika array sumber kosong, tindakan akan membuat tabel kosong. |
Optional
Untuk menentukan atau mengustomisasi header dan nilai kolom, gunakan columns array. Saat header-value pasangan memiliki nama header yang sama, nilainya muncul di kolom yang sama di bawah nama header tersebut. Jika tidak, setiap header unik menentukan kolom unik.
| Value | Type | Description |
|---|---|---|
| < nama kolom> | String | Nama header untuk kolom |
| < nilai kolom> | Any | Nilai dalam kolom tersebut |
Contoh 1
Misalkan Anda memiliki variabel "myItemArray" yang dibuat sebelumnya yang saat ini berisi array ini:
[ {"ID": 0, "Product_Name": "Apples"}, {"ID": 1, "Product_Name": "Oranges"} ]
Definisi tindakan ini membuat tabel CSV dari variabel "myItemArray". Ekspresi yang digunakan oleh from properti mendapatkan array dari "myItemArray" dengan menggunakan variables() fungsi:
"Create_CSV_table": {
"type": "Table",
"inputs": {
"format": "CSV",
"from": "@variables('myItemArray')"
},
"runAfter": {}
}
Berikut adalah tabel CSV yang dibuat tindakan ini:
ID,Product_Name
0,Apples
1,Oranges
Contoh 2
Definisi tindakan ini membuat tabel HTML dari variabel "myItemArray". Ekspresi yang digunakan oleh from properti mendapatkan array dari "myItemArray" dengan menggunakan variables() fungsi:
"Create_HTML_table": {
"type": "Table",
"inputs": {
"format": "HTML",
"from": "@variables('myItemArray')"
},
"runAfter": {}
}
Berikut adalah tabel HTML yang dibuat tindakan ini:
| ID | Product_Name |
|---|---|
| 0 | Apples |
| 1 | Oranges |
Contoh 3
Definisi tindakan ini membuat tabel HTML dari variabel "myItemArray". Namun, contoh ini mengambil alih nama header kolom default dengan "Stock_ID" dan "Deskripsi", dan menambahkan kata "Organik" ke nilai di kolom "Deskripsi".
"Create_HTML_table": {
"type": "Table",
"inputs": {
"format": "HTML",
"from": "@variables('myItemArray')",
"columns": [
{
"header": "Stock_ID",
"value": "@item().ID"
},
{
"header": "Description",
"value": "@concat('Organic ', item().Product_Name)"
}
]
},
"runAfter": {}
},
Berikut adalah tabel HTML yang dibuat tindakan ini:
| Stock_ID | Description |
|---|---|
| 0 | Apel Organik |
| 1 | Jeruk Organik |
Hentikan tindakan
Tindakan ini menghentikan eksekusi instans alur kerja, membatalkan tindakan apa pun yang sedang berlangsung, melompati tindakan yang tersisa, dan menampilkan status yang ditentukan. Misalnya, Anda dapat menggunakan tindakan Hentikan saat aplikasi logika Anda harus keluar sepenuhnya dari status kesalahan. Tindakan ini tidak memengaruhi tindakan yang sudah selesai dan tidak dapat muncul di dalam perulangan Foreach dan Until , termasuk perulangan berurutan.
"Terminate": {
"type": "Terminate",
"inputs": {
"runStatus": "<status>",
"runError": {
"code": "<error-code-or-name>",
"message": "<error-message>"
}
},
"runAfter": {}
}
Required
| Value | Type | Description |
|---|---|---|
| < keadaan> | String | Status yang akan ditampilkan untuk dijalankan: "Gagal", "Dibatalkan", atau "Berhasil" |
Optional
Properti untuk objek "runError" hanya berlaku ketika properti "runStatus" diatur ke status "Gagal".
| Value | Type | Description |
|---|---|---|
| < error-code-or-name> | String | Kode atau nama untuk kesalahan |
| < pesan kesalahan> | String | Pesan atau teks yang menjelaskan kesalahan dan tindakan apa pun yang dapat dilakukan pengguna aplikasi |
Example
Definisi tindakan ini menghentikan eksekusi alur kerja, menyetel status jalankan menjadi "Gagal", dan menampilkan status, kode kesalahan, dan pesan kesalahan:
"Terminate": {
"type": "Terminate",
"inputs": {
"runStatus": "Failed",
"runError": {
"code": "Unexpected response",
"message": "The service received an unexpected response. Please try again."
}
},
"runAfter": {}
}
Tindakan tunggu
Tindakan ini menjeda eksekusi alur kerja untuk interval yang ditentukan atau hingga waktu yang ditentukan, tapi tidak keduanya.
Interval yang ditentukan
"Delay": {
"type": "Wait",
"inputs": {
"interval": {
"count": <number-of-units>,
"unit": "<interval>"
}
},
"runAfter": {}
},
Waktu yang ditentukan
"Delay_until": {
"type": "Wait",
"inputs": {
"until": {
"timestamp": "<date-time-stamp>"
}
},
"runAfter": {}
},
Required
| Value | Type | Description |
|---|---|---|
| < jumlah unit> | Integer | Untuk tindakan Tunda , jumlah unit yang akan ditunggu |
| < Interval> | String | Untuk tindakan Tunda , interval untuk menunggu: "Kedua", "Menit", "Jam", "Hari", "Minggu", "Bulan" |
| < stempel tanggal-waktu> | String | Untuk tindakan Tunda Hingga , tanggal dan waktu untuk melanjutkan eksekusi. Nilai ini harus menggunakan format waktu tanggal UTC. |
Contoh 1
Definisi tindakan ini menjeda alur kerja selama 15 menit:
"Delay": {
"type": "Wait",
"inputs": {
"interval": {
"count": 15,
"unit": "Minute"
}
},
"runAfter": {}
},
Contoh 2
Definisi tindakan ini menjeda alur kerja hingga waktu yang ditentukan:
"Delay_until": {
"type": "Wait",
"inputs": {
"until": {
"timestamp": "2017-10-01T00:00:00Z"
}
},
"runAfter": {}
},
Tindakan alur kerja
Tindakan ini memanggil aplikasi logika lain yang dibuat sebelumnya, yang berarti Anda dapat menyertakan dan menggunakan kembali alur kerja aplikasi logika lainnya. Anda juga dapat menggunakan output dari aplikasi logika turunan atau berlapis dalam tindakan yang mengikuti aplikasi logika berlapis, asalkan aplikasi logika turunan mengembalikan respons.
Azure Logic Apps memeriksa akses ke pemicu yang ingin Anda panggil, jadi pastikan Anda dapat mengakses pemicu tersebut. Selain itu, aplikasi logika bertumpuk harus memenuhi kriteria berikut:
Pemicu membuat aplikasi logika berlapis dapat dipanggil, seperti pemicu Permintaan atau HTTP
Langganan Azure yang sama dengan aplikasi logika induk Anda
Untuk menggunakan output dari aplikasi logika berlapis di aplikasi logika induk Anda, aplikasi logika berlapis harus memiliki tindakan Respons
"<nested-logic-app-name>": {
"type": "Workflow",
"inputs": {
"body": { "<body-content" },
"headers": { "<header-content>" },
"host": {
"triggerName": "<trigger-name>",
"workflow": {
"id": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group>/providers/Microsoft.Logic/<nested-logic-app-name>"
}
}
},
"runAfter": {}
}
Required
| Value | Type | Description |
|---|---|---|
| < nested-logic-app-name> | String | Nama untuk aplikasi logika yang ingin Anda panggil |
| < nama pemicu> | String | Nama pemicu di aplikasi logika bertumpuk yang ingin Anda panggil |
| < ID langganan Azure> | String | ID langganan Azure untuk aplikasi logika bertumpuk |
| < Grup-sumber daya-Azure> | String | Nama grup sumber daya Azure untuk aplikasi logika bertumpuk |
Optional
| Value | Type | Description |
|---|---|---|
| < header-content> | Objek JSON | Header apa pun yang akan dikirim dengan panggilan |
| < konten isi> | Objek JSON | Konten pesan apa pun yang akan dikirim dengan panggilan |
Outputs
Output tindakan ini bervariasi berdasarkan tindakan Respons aplikasi logika bertumpuk. Jika aplikasi logika bertumpuk tidak menyertakan tindakan Respons, output kosong.
Example
Setelah tindakan "Start_search" berhasil diselesaikan, definisi tindakan alur kerja ini memanggil aplikasi logika lain bernama "Get_product_information", yang meneruskan input yang ditentukan:
"actions": {
"Start_search": { <action-definition> },
"Get_product_information": {
"type": "Workflow",
"inputs": {
"body": {
"ProductID": "24601",
},
"host": {
"id": "/subscriptions/XXXXXXXXXXXXXXXXXXXXXXXXXX/resourceGroups/InventoryManager-RG/providers/Microsoft.Logic/Get_product_information",
"triggerName": "Find_product"
},
"headers": {
"content-type": "application/json"
}
},
"runAfter": {
"Start_search": [ "Succeeded" ]
}
}
},
Mengontrol detail tindakan alur kerja
Tindakan Foreach
TIndakan perulangan ini berulang melalui array dan melakukan tindakan pada setiap item array. Secara default, perulangan "untuk setiap" berjalan secara paralel hingga jumlah maksimum perulangan. Untuk maksimum ini, lihat Batas dan konfigurasi. Pelajari cara membuat perulangan "untuk setiap".
"For_each": {
"type": "Foreach",
"actions": {
"<action-1>": { "<action-definition-1>" },
"<action-2>": { "<action-definition-2>" }
},
"foreach": "<for-each-expression>",
"runAfter": {},
"runtimeConfiguration": {
"concurrency": {
"repetitions": <count>
}
},
"operationOptions": "<operation-option>"
}
Required
| Value | Type | Description |
|---|---|---|
| < action-1... n> | String | Nama tindakan yang berjalan pada setiap item array |
| < action-definition-1... n> | Objek JSON | Definisi tindakan yang berjalan |
| < untuk setiap ekspresi> | String | Ekspresi yang mereferensikan setiap item dalam array yang ditentukan |
Optional
| Value | Type | Description |
|---|---|---|
| < hitung> | Integer | Secara default, iterasi perulangan "untuk setiap" berjalan pada saat yang sama (secara bersamaan atau paralel) hingga batas default. Untuk mengubah batas ini dengan mengatur nilai < baru>, lihat Mengubah konkurensi perulangan "untuk setiap". |
| < opsi operasi> | String | Untuk menjalankan perulangan "untuk setiap" secara berurutan, bukan secara paralel, atur <opsi> operasi ke Sequential atau <hitung> ke 1, tetapi tidak keduanya. Untuk informasi selengkapnya, lihat Menjalankan perulangan "untuk setiap" secara berurutan. |
Example
Perulangan "untuk setiap" ini mengirim email untuk setiap item dalam array, yang berisi lampiran dari email masuk. Perulangan mengirim email, termasuk lampiran, kepada orang yang meninjau lampiran.
"For_each": {
"type": "Foreach",
"actions": {
"Send_an_email": {
"type": "ApiConnection",
"inputs": {
"body": {
"Body": "@base64ToString(items('For_each')?['Content'])",
"Subject": "Review attachment",
"To": "Sophie.Owen@contoso.com"
},
"host": {
"connection": {
"id": "@parameters('$connections')['office365']['connectionId']"
}
},
"method": "post",
"path": "/Mail"
},
"runAfter": {}
}
},
"foreach": "@triggerBody()?['Attachments']",
"runAfter": {}
}
Untuk menentukan hanya array yang diteruskan sebagai output dari pemicu, ekspresi ini mendapatkan < array array-name> dari isi pemicu. Untuk menghindari kegagalan jika array tidak ada, ekspresi menggunakan ? operator:
@triggerBody()?['<array-name>']
Jika tindakan
Tindakan ini, yang merupakan pernyataan kondisional, mengevaluasi ekspresi yang mewakili kondisi dan menjalankan cabang yang berbeda berdasarkan apakah kondisinya benar atau salah. Jika kondisinya benar, kondisi ditandai dengan status "Berhasil". Pelajari cara membuat pernyataan kondisional.
"Condition": {
"type": "If",
"expression": { "<condition>" },
"actions": {
"<action-1>": { "<action-definition>" }
},
"else": {
"actions": {
"<action-2>": { "<action-definition" }
}
},
"runAfter": {}
}
| Value | Type | Description |
|---|---|---|
| < keadaan> | Objek JSON | Kondisi, yang dapat menjadi ekspresi, untuk mengevaluasi |
| < action-1> | Objek JSON | Tindakan yang dijalankan ketika <kondisi> mengevaluasi ke true |
| < definisi tindakan> | Objek JSON | Definisi untuk tindakan |
| < action-2> | Objek JSON | Tindakan yang dijalankan ketika <kondisi> mengevaluasi ke false |
Tindakan dalam objek actions atau else mendapatkan status ini:
- "Berhasil" saat status berjalan dan berhasil
- "Gagal" saat status berjalan dan gagal
- "Dilompati" saat masing-masing cabang tidak berjalan
Example
Kondisi ini menentukan bahwa saat variabel bilangan bulat memiliki nilai yang lebih besar dari nol, alur kerja akan memeriksa situs web. Jika variabel nol atau kurang, alur kerja akan memeriksa situs web yang berbeda.
"Condition": {
"type": "If",
"expression": {
"and": [ {
"greater": [ "@variables('myIntegerVariable')", 0 ]
} ]
},
"actions": {
"HTTP - Check this website": {
"type": "Http",
"inputs": {
"method": "GET",
"uri": "http://this-url"
},
"runAfter": {}
}
},
"else": {
"actions": {
"HTTP - Check this other website": {
"type": "Http",
"inputs": {
"method": "GET",
"uri": "http://this-other-url"
},
"runAfter": {}
}
}
},
"runAfter": {}
}
Bagaimana kondisi menggunakan ekspresi
Berikut adalah beberapa contoh yang memperlihatkan bagaimana Anda bisa menggunakan ekspresi dalam kondisi:
| JSON | Result |
|---|---|
| "ekspresi": "@parameters('<hasSpecialAction>')" | Hanya untuk ungkapan bersyarat, kondisi melewati untuk nilai apa pun yang dievaluasi ke true. Untuk mengonversi jenis lain ke Boolean, gunakan fungsi ini: empty() atau equals(). |
| "expression": "@greater(actions('<action>').output.value, parameters('<threshold>'))" | Untuk fungsi <, tindakan hanya berjalan ketika output dari >< lebih dari > nilai ambang batas. |
| "expression": "@or(greater(actions('<action>').output.value, parameters('<threshold>')), less(actions('<same-action>').output.value, 100))" | Untuk fungsi logika dan membuat ekspresi Boolean berlapis, tindakan berjalan saat output dari <tindakan> lebih dari < nilai ambang batas> atau di bawah 100. |
| "expression": "@equals(length(actions('<action>').outputs.errors), 0)" | Anda bisa menggunakan fungsi array untuk memeriksa apakah array memiliki item apa pun. Tindakan berjalan saat errors array kosong. |
Tindakan cakupan
Tindakan ini secara logis mengelompokkan tindakan ke dalam cakupan, yang mendapatkan statusnya sendiri setelah tindakan dalam cakupan tersebut selesai berjalan. Anda kemudian dapat menggunakan status cakupan untuk menentukan apakah tindakan lain berjalan. Pelajari cara membuat cakupan.
"Scope": {
"type": "Scope",
"actions": {
"<inner-action-1>": {
"type": "<action-type>",
"inputs": { "<action-inputs>" },
"runAfter": {}
},
"<inner-action-2>": {
"type": "<action-type>",
"inputs": { "<action-inputs>" },
"runAfter": {}
}
}
}
Required
| Value | Type | Description |
|---|---|---|
| < dalam-tindakan-1... n> | Objek JSON | Satu atau beberapa tindakan yang berjalan di dalam cakupan |
| < input tindakan> | Objek JSON | Input untuk setiap tindakan |
Beralih tindakan
Tindakan ini, juga dikenal sebagai pernyataan pengalihan, mengatur tindakan lain ke dalam kasus, dan menetapkan nilai untuk setiap kasus, kecuali untuk kasus default jika ada. Saat alur kerja Anda berjalan, tindakan Beralih membandingkan nilai dari ekspresi, objek, atau token terhadap nilai yang ditentukan untuk setiap kasus. Jika tindakan Beralih menemukan kasus yang cocok, alur kerja Anda hanya menjalankan tindakan untuk kasus tersebut. Setiap kali tindakan Beralih berjalan, hanya ada satu kasus yang cocok atau tidak ada kecocokan. Jika tidak ada kecocokan, tindakan Beralih menjalankan tindakan default. Pelajari cara membuat pernyataan alihkan.
"Switch": {
"type": "Switch",
"expression": "<expression-object-or-token>",
"cases": {
"Case": {
"actions": {
"<action-name>": { "<action-definition>" }
},
"case": "<matching-value>"
},
"Case_2": {
"actions": {
"<action-name>": { "<action-definition>" }
},
"case": "<matching-value>"
}
},
"default": {
"actions": {
"<default-action-name>": { "<default-action-definition>" }
}
},
"runAfter": {}
}
Required
| Value | Type | Description |
|---|---|---|
| < expression-object-or-token> | Varies | Ekspresi, objek JSON, atau token untuk dievaluasi |
| < nama tindakan> | String | Nama tindakan yang akan dijalankan untuk kasus yang cocok |
| < definisi tindakan> | Objek JSON | Definisi untuk tindakan yang dijalankan untuk kasus yang cocok |
| < nilai pencocokan> | Varies | Nilai untuk dibandingkan dengan hasil yang dievaluasi |
Optional
| Value | Type | Description |
|---|---|---|
| < default-action-name> | String | Nama tindakan default yang dijalankan saat tidak ada kasus yang cocok |
| < default-action-definition> | Objek JSON | Definisi untuk tindakan yang dijalankan saat tidak ada kasus yang cocok |
Example
Definisi tindakan ini mengevaluasi apakah orang yang menanggapi email permintaan persetujuan memilih opsi "Setuju" atau opsi "Tolak". Berdasarkan pilihan ini, tindakan Beralih menjalankan tindakan untuk kasus yang cocok, yaitu mengirim email lain ke responden tetapi dengan kata-kata yang berbeda dalam setiap kasus.
"Switch": {
"type": "Switch",
"expression": "@body('Send_approval_email')?['SelectedOption']",
"cases": {
"Case": {
"actions": {
"Send_an_email": {
"type": "ApiConnection",
"inputs": {
"Body": "Thank you for your approval.",
"Subject": "Response received",
"To": "Sophie.Owen@contoso.com"
},
"host": {
"connection": {
"name": "@parameters('$connections')['office365']['connectionId']"
}
},
"method": "post",
"path": "/Mail"
},
"runAfter": {}
},
"case": "Approve"
},
"Case_2": {
"actions": {
"Send_an_email_2": {
"type": "ApiConnection",
"inputs": {
"Body": "Thank you for your response.",
"Subject": "Response received",
"To": "Sophie.Owen@contoso.com"
},
"host": {
"connection": {
"name": "@parameters('$connections')['office365']['connectionId']"
}
},
"method": "post",
"path": "/Mail"
},
"runAfter": {}
},
"case": "Reject"
}
},
"default": {
"actions": {
"Send_an_email_3": {
"type": "ApiConnection",
"inputs": {
"Body": "Please respond with either 'Approve' or 'Reject'.",
"Subject": "Please respond",
"To": "Sophie.Owen@contoso.com"
},
"host": {
"connection": {
"name": "@parameters('$connections')['office365']['connectionId']"
}
},
"method": "post",
"path": "/Mail"
},
"runAfter": {}
}
},
"runAfter": {
"Send_approval_email": [
"Succeeded"
]
}
}
Hingga tindakan
Tindakan perulangan ini memuat tindakan yang berjalan hingga kondisi yang ditentukan benar. Perulangan memeriksa kondisi sebagai langkah terakhir setelah semua tindakan lain berjalan. Anda dapat menyertakan lebih dari satu tindakan dalam "actions" objek, dan tindakan harus menentukan setidaknya satu batas. Pelajari cara membuat perulangan "until".
"Until": {
"type": "Until",
"actions": {
"<action-name>": {
"type": "<action-type>",
"inputs": { "<action-inputs>" },
"runAfter": {}
},
"<action-name>": {
"type": "<action-type>",
"inputs": { "<action-inputs>" },
"runAfter": {}
}
},
"expression": "<condition>",
"limit": {
"count": <loop-count>,
"timeout": "<loop-timeout>"
},
"runAfter": {}
}
| Value | Type | Description |
|---|---|---|
| < nama tindakan> | String | Nama untuk tindakan yang ingin Anda jalankan di dalam perulangan |
| < jenis tindakan> | String | Jenis tindakan yang ingin Anda jalankan |
| < input tindakan> | Various | Input untuk aksi yang akan dijalankan |
| < keadaan> | String | Kondisi atau ekspresi untuk mengevaluasi setelah semua tindakan dalam perulangan selesai berjalan |
| < jumlah perulangan> | Integer | Batas pada jumlah perulangan terbanyak yang dapat dijalankan tindakan. Untuk informasi selengkapnya tentang batas default dan batas maksimum, lihat Batas dan konfigurasi untuk Microsoft Azure Logic Apps. |
| < batas waktu loop> | String | Batas waktu terlama yang dapat dijalankan perulangan. Nilai default timeout adalah PT1H, yang merupakan format ISO 8601 yang diperlukan. |
Note
Jika ekspresi bergantung pada output dari tindakan apa pun dalam perulangan Hingga, pastikan Anda memperhitungkan kegagalan apa pun yang dihasilkan dari tindakan tersebut.
Example
Definisi tindakan permintaan ini mengirimkan permintaan HTTP ke URL yang ditentukan hingga salah satu kondisi ini terpenuhi:
- Permintaan mendapatkan respons dengan kode status "200 OK".
- Perulangan telah berjalan 60 kali.
- Perulangan telah berjalan selama satu jam.
"Run_until_loop_succeeds_or_expires": {
"type": "Until",
"actions": {
"HTTP": {
"type": "Http",
"inputs": {
"method": "GET",
"uri": "http://myurl"
},
"runAfter": {}
}
},
"expression": "@equals(outputs('HTTP')['statusCode'], 200)",
"limit": {
"count": 60,
"timeout": "PT1H"
},
"runAfter": {}
}
Webhook dan langganan
Pemicu dan tindakan berbasis Webhook tidak secara teratur memeriksa titik akhir, tapi tunggu peristiwa atau data tertentu di titik akhir tersebut. Pemicu dan tindakan ini berlangganan titik akhir dengan menyediakan URL panggilan balik tempat titik akhir dapat mengirim respons.
Panggilan subscribe terjadi saat alur kerja berubah dengan cara apa pun, misalnya, saat informasi masuk diperbarui, atau saat parameter input berubah untuk pemicu atau tindakan. Panggilan ini menggunakan parameter yang sama dengan tindakan HTTP standar.
unsubscribePanggilan secara otomatis terjadi saat operasi membuat pemicu atau tindakan tidak valid, misalnya:
- Menghapus atau menonaktifkan pemicu.
- Menghapus atau menonaktifkan alur kerja.
- Menghapus atau menonaktifkan langganan.
Untuk mendukung panggilan ini, ekspresi @listCallbackUrl() menampilkan "URL panggilan balik" unik untuk pemicu atau tindakan. URL ini menunjukkan pengidentifikasi unik untuk titik akhir yang menggunakan REST API layanan. Parameter untuk fungsi ini sama dengan pemicu atau tindakan webhook.
Mengubah durasi asinkron
Untuk pemicu dan tindakan, Anda dapat membatasi durasi pola asinkron ke interval waktu tertentu dengan menambahkan limit.timeout properti. Dengan demikian, jika tindakan belum selesai saat interval berakhir, status tindakan ditandai Cancelled dengan ActionTimedOut kode.
timeoutProperti ini menggunakan format ISO 8601.
"<trigger-or-action-name>": {
"type": "Workflow | Webhook | Http | ApiConnectionWebhook | ApiConnection",
"inputs": {},
"limit": {
"timeout": "PT10S"
},
"runAfter": {}
}
Pengaturan konfigurasi runtime bahasa umum
Anda dapat mengubah perilaku runtime bahasa umum default untuk pemicu dan tindakan dengan menambahkan properti runtimeConfiguration ini ke definisi pemicu atau tindakan.
| Property | Type | Description | Pemicu atau tindakan |
|---|---|---|---|
runtimeConfiguration.concurrency.runs |
Integer | Ubah batas default pada jumlah instans alur kerja yang dapat berjalan secara bersamaan (secara bersamaan atau paralel). Menyesuaikan nilai ini dapat membantu membatasi jumlah permintaan yang diterima sistem backend. Menyetel runs properti ke 1 berfungsi dengan cara yang sama seperti menyetel operationOptions properti ke SingleInstance. Anda dapat menyetel properti, tapi tidak keduanya. Untuk mengubah batas default, lihat Mengubah konkurensi pemicu atau Instans pemicu secara berurutan. |
Semua pemicu |
runtimeConfiguration.concurrency.maximumWaitingRuns |
Integer | Ubah batas default pada jumlah instans alur kerja yang harus menunggu untuk dijalankan saat aplikasi logika Anda sudah menjalankan instans bersamaan maksimum. Untuk mengubah batas default, lihat Ubah batas eksekusi tunggu. |
Semua pemicu |
runtimeConfiguration.concurrency.repetitions |
Integer | Ubah batas default pada jumlah iterasi perulangan "untuk setiap" yang dapat berjalan secara bersamaan (secara bersamaan atau paralel). Menyetel repetitions properti ke 1 berfungsi dengan cara yang sama seperti menyetel operationOptions properti ke SingleInstance. Anda dapat menyetel properti, tapi tidak keduanya. Untuk mengubah batas default, lihat Mengubah konkurensi "untuk setiap" atau Menjalankan perulangan "untuk setiap" secara berurutan. |
Action: Foreach |
runtimeConfiguration.paginationPolicy.minimumItemCount |
Integer | Untuk tindakan tertentu yang mendukung dan mengaktifkan penomoran halaman, nilai ini menentukan jumlah minimum hasil yang akan diambil. Untuk mengaktifkan pagination, lihat Mendapatkan data, item, atau hasil massal dengan menggunakan pagination |
Tindakan: Bervariasi |
runtimeConfiguration.secureData.properties |
Array | Pada banyak pemicu dan tindakan, pengaturan ini menyembunyikan input, output, atau keduanya dari riwayat jalankan aplikasi logika. Untuk mempelajari selengkapnya tentang melindungi data ini, lihat Menyembunyikan input dan output dari riwayat jalankan. |
Sebagian besar pemicu dan tindakan |
runtimeConfiguration.staticResult |
Objek JSON | Untuk tindakan yang mendukung dan mengaktifkan pengaturan hasil statis , staticResult objek memiliki atribut ini: - name, yang mereferensikan nama definisi hasil statis tindakan saat ini, yang muncul di dalam atribut staticResults di atribut alur kerja aplikasi logika Andadefinition. Untuk informasi selengkapnya, lihat Hasil statis - Referensi skema untuk Bahasa Pemrogram Definisi Alur Kerja. - staticResultOptions, yang menentukan apakah hasil statis adalah Enabled atau tidak untuk tindakan saat ini. Untuk mengaktifkan hasil statis, lihat Menguji aplikasi logika dengan data tiruan dengan menyiapkan hasil statis |
Tindakan: Bervariasi |
Opsi operasi
Anda dapat mengubah perilaku default untuk pemicu dan tindakan dengan operationOptions properti dalam definisi pemicu atau tindakan.
| Opsi operasi | Type | Description | Pemicu atau tindakan |
|---|---|---|---|
DisableAsyncPattern |
String | Jalankan tindakan berbasis HTTP secara sinkron, bukan secara asinkron. Untuk mengatur opsi ini, lihat Menjalankan tindakan secara sinkron. |
Actions: ApiConnection, HTTP, Response |
IncludeAuthorizationHeadersInOutputs |
String | Untuk aplikasi logika yang mengaktifkan OAuth dengan MICROSOFT Entra ID untuk mengotorisasi akses untuk panggilan masuk ke titik akhir pemicu berbasis permintaan, sertakan Authorization header dari token akses OAuth dalam output pemicu. Untuk informasi selengkapnya, lihat Menyertakan header 'Otorisasi' dalam output pemicu permintaan. |
Triggers: Request, HTTP Webhook |
Sequential |
String | Jalankan iterasi perulangan "untuk setiap" satu per satu, bukan semua pada saat yang sama secara paralel. Opsi ini berfungsi dengan cara yang sama seperti menyetel runtimeConfiguration.concurrency.repetitions properti ke 1. Anda dapat menyetel properti, tapi tidak keduanya. Untuk menyetel opsi ini, lihat Menjalankan perulangan "untuk setiap" secara berurutan. |
Action: Foreach |
SingleInstance |
String | Jalankan pemicu untuk setiap instans aplikasi logika secara berurutan dan tunggu hingga proses yang sebelumnya aktif selesai sebelum memicu instans aplikasi logika berikutnya. Opsi ini berfungsi dengan cara yang sama seperti menyetel runtimeConfiguration.concurrency.runs properti ke 1. Anda dapat menyetel properti, tapi tidak keduanya. Untuk mengatur opsi ini, lihat Instans pemicu secara berurutan. |
Semua pemicu |
SuppressWorkflowHeaders |
String | Jangan kirim x-ms-* header metadata di permintaan keluar. Secara default, Azure Logic Apps menyertakan header metadata tambahan dengan x-ms- awalan dalam nama header sebagai bagian dari permintaan keluar. Namun, beberapa layanan warisan tidak akan menerima permintaan dengan header tambahan yang tidak diketahui, yang mengakibatkan permintaan gagal. |
Actions: HTTP, Function, APIManagement |
SuppressWorkflowHeadersOnResponse |
String | Jangan mengirim x-ms-* header metadata sebagai tanggapan atas permintaan pemicu masuk. Secara default, Azure Logic Apps mengirim respons ke permintaan masuk yang menyertakan header metadata tambahan dengan x-ms- awalan dalam nama header. Namun, beberapa layanan warisan tidak akan menerima permintaan atau repsons dengan header tambahan yang tidak diketahui, yang mengakibatkan permintaan gagal. |
Triggers: Request, HTTP Webhook |
Ubah konkurensi pemicu
Secara default, semua instans alur kerja aplikasi logika berjalan pada saat yang sama (secara bersamaan atau paralel). Perilaku ini berarti bahwa setiap instans pemicu diaktifkan sebelum instans alur kerja sebelumnya selesai berjalan. Namun, jumlah instans yang berjalan bersamaan memiliki batas default. Saat jumlah instans alur kerja yang berjalan bersamaan mencapai batas ini, instans baru lainnya harus menunggu untuk dijalankan. Batas ini membantu mengontrol jumlah permintaan yang diterima sistem backend.
Saat Anda mengaktifkan kontrol konkurensi pemicu, instans pemicu berjalan secara paralel hingga batas default. Untuk mengubah batas konkurensi default ini, Anda dapat menggunakan editor tampilan kode atau perancang alur kerja karena mengubah pengaturan konkurensi melalui perancang menambahkan atau memperbarui runtimeConfiguration.concurrency.runs properti dalam definisi pemicu yang mendasar dan sebaliknya. Properti ini mengontrol jumlah maksimum instans alur kerja baru yang dapat berjalan secara paralel.
Sebelum Anda mengaktifkan konkurensi pada pemicu, tinjau pertimbangan berikut:
Anda tidak dapat menonaktifkan konkurensi setelah mengaktifkan kontrol konkurensi.
Jika jumlah maksimum eksekusi pemicu bersamaan mencapai tingkat paralelisme maksimum, eksekusi pemicu berikutnya mungkin mengalami pembatasan atau kesalahan "429 - Terlalu banyak permintaan". Jika Anda menyiapkan kebijakan percobaan kembali yang menangani kesalahan 429, pemicu mungkin mengalami siklus perilaku coba lagi dan pembatasan yang menyebabkan keterlambatan panjang dalam memproses permintaan pemicu baru.
Ketika konkurensi diaktifkan, batas Pisahkan pada berkurang secara signifikan untuk debatching array. Jika jumlah item melebihi batas ini, kemampuan Pisahkan pada dinonaktifkan .
Saat konkurensi diaktifkan, instans aplikasi logika yang berjalan lama dapat menyebabkan instans aplikasi logika baru memasuki status tunggu. Status ini mencegah Microsoft Azure Logic Apps membuat instans baru dan terjadi bahkan saat jumlah eksekusi konkuren kurang dari jumlah maksimum eksekusi konkuren yang ditentukan.
Untuk mengganggu status ini, batalkan instans paling awal yang masih berjalan.
Pada menu aplikasi logika Anda, pilih Gambaran Umum.
Di bagian Riwayat eksekusi, pilih instans paling awal yang masih berjalan, misalnya:
Tip
Untuk melihat hanya instans yang masih berjalan, buka daftar Semua , dan pilih Berjalan.
Di bawah eksekusi aplikasi logika, pilih Batalkan eksekusi.
Untuk mengatasi kemungkinan ini, tambahkan batas waktu ke tindakan apa pun yang mungkin menahan proses ini. Jika Anda bekerja di editor kode, lihat Mengubah durasi asinkron. Jika tidak, jika Anda menggunakan perancang, ikuti langkah-langkah berikut:
Di alur kerja aplikasi logika Anda, pilih tindakan tempat Anda ingin menambahkan batas waktu. Di sudut kanan atas tindakan, pilih tombol elipsis (...), lalu pilih Pengaturan.
Di bawah Batas Waktu, tentukan durasi batas waktu dalam format ISO 8601.
Untuk menjalankan aplikasi logika Anda secara berurutan, setel konkurensi pemicu ke
1keduanya dengan menggunakan editor tampilan kode atau perancang. Pastikan Anda juga tidak menyeteloperationOptionsproperti pemicu keSingleInstancedi editor tampilan kode. Jika tidak, Anda mendapatkan kesalahan validasi. Untuk informasi selengkapnya, lihat Instans pemicu secara berurutan.
Mengedit dalam tampilan kode
Dalam definisi pemicu yang mendasarinya, tambahkan runtimeConfiguration.concurrency.runsproperti, dan setel nilai berdasarkan batas konkurensi pemicu. Untuk menjalankan alur kerja Anda secara berurutan, setel nilai properti menjadi 1.
Contoh ini membatasi proses konkuren hingga 10 instans:
"<trigger-name>": {
"type": "<trigger-name>",
"recurrence": {
"frequency": "<time-unit>",
"interval": <number-of-time-units>,
},
"runtimeConfiguration": {
"concurrency": {
"runs": 10
}
}
}
Untuk informasi selengkapnya, lihat Pengaturan konfigurasi runtime bahasa umum.
Edit di perancang alur kerja
Di sudut kanan atas pemicu, pilih tombol elipsis (...), lalu pilih Pengaturan.
Di bawah Kontrol Konkurensi, atur Batas ke Aktif.
Seret penggeser Tingkat Paralelisme ke nilai yang Anda inginkan. Untuk menjalankan aplikasi logika Anda secara berurutan, seret nilai slider ke 1.
Ubah konkurensi "untuk setiap"
Secara default, semua iterasi perulangan "untuk setiap" berjalan pada saat yang sama (secara bersamaan atau paralel). Perilaku ini berarti bahwa setiap iterasi mulai berjalan sebelum iterasi sebelumnya selesai berjalan. Namun, jumlah iterasi yang berjalan bersamaan memiliki batas default. Saat jumlah iterasi yang berjalan bersamaan mencapai batas ini, iterasi lain harus menunggu untuk dijalankan.
Untuk mengubah batas default, Anda dapat menggunakan editor tampilan kode atau perancang alur kerja karena mengubah pengaturan konkurensi melalui perancang menambahkan atau memperbarui runtimeConfiguration.concurrency.repetitions properti dalam definisi tindakan "untuk setiap" yang mendasar dan sebaliknya. Properti ini mengontrol jumlah maksimum iterasi yang dapat berjalan secara paralel.
Note
Jika Anda menyetel tindakan "untuk setiap" untuk berjalan secara berurutan baik dengan menggunakan perancang atau editor tampilan kode, jangan setel operationOptions properti ke Sequential tindakan di editor tampilan kode. Jika tidak, Anda mendapatkan kesalahan validasi. Untuk informasi selengkapnya, lihat Menjalankan perulangan "untuk setiap" secara berurutan.
Mengedit dalam tampilan kode
Dalam definisi "untuk setiap" yang mendasarinya, tambahkan atau perbarui runtimeConfiguration.concurrency.repetitionsproperti, yang dapat memiliki nilai yang berkisar dari 1 dan 50.
Berikut adalah contoh yang membatasi proses bersamaan hingga 10 iterasi:
"For_each" {
"type": "Foreach",
"actions": { "<actions-to-run>" },
"foreach": "<for-each-expression>",
"runAfter": {},
"runtimeConfiguration": {
"concurrency": {
"repetitions": 10
}
}
}
Untuk informasi selengkapnya, lihat Pengaturan konfigurasi runtime bahasa umum.
Edit di perancang alur kerja
Di tombol Untuk setiap tindakan, dari sudut kanan atas, pilih tombol elipsis (...), lalu pilih Pengaturan.
Di bawah Kontrol Konkurensi, atur Kontrol Konkurensi ke Aktif.
Seret penggeser Tingkat Paralelisme ke nilai yang Anda inginkan. Untuk menjalankan aplikasi logika Anda secara berurutan, seret nilai slider ke 1.
Ubah batas eksekusi tunggu
Secara default, semua instans alur kerja aplikasi logika berjalan pada saat yang sama (secara bersamaan atau paralel). Perilaku ini berarti bahwa setiap instans pemicu diaktifkan sebelum instans alur kerja sebelumnya selesai berjalan. Namun, batas default ada pada jumlah instans alur kerja yang berjalan bersamaan. Ketika jumlah eksekusi bersamaan mencapai batas ini, instans alur kerja baru lainnya harus menunggu untuk dijalankan. Batas default juga ada pada jumlah instans alur kerja tunggu. Ketika jumlah instans tunggu mencapai batas ini, Azure Logic Apps tidak lagi menerima instans alur kerja baru untuk dijalankan. Pemicu permintaan dan webhook mengembalikan 429 - Terlalu banyak kesalahan permintaan, dan pemicu berulang mulai melewati upaya polling.
Anda dapat mengubah batas default pada konkurensi pemicu serta batas default pada eksekusi tunggu. Namun, perubahan ini terutama memperlambat pemicu untuk meringankan tekanan karena konkurensi. Misalnya, jika Anda memiliki pemicu polling, dan antrean eksekusi tunggu penuh karena eksekusi yang sedang berlangsung, Azure Logic Apps berhenti melakukan polling. Jika alur kerja Anda menggunakan pemicu berbasis permintaan, dan antrean eksekusi tunggu penuh, Azure Logic Apps mulai mengembalikan kesalahan 429. Beberapa skenario ada di mana Azure Logic Apps tidak dapat menghentikan pemicu dari polling tanpa memperkenalkan kegagalan dan memilih untuk menambahkan eksekusi tersebut ke antrean eksekusi tunggu tanpa gagal menjalankan panggilan.
Dalam definisi pemicu yang mendasarinya, tambahkan runtimeConfiguration.concurrency.maximumWaitingRuns properti, yang dapat memiliki nilai yang berkisar dari 1 ke 100.
"<trigger-name>": {
"type": "<trigger-name>",
"recurrence": {
"frequency": "<time-unit>",
"interval": <number-of-time-units>,
},
"runtimeConfiguration": {
"concurrency": {
"maximumWaitingRuns": 50
}
}
}
Untuk informasi selengkapnya, lihat Pengaturan konfigurasi runtime bahasa umum.
Instans pemicu secara berurutan
Untuk menjalankan setiap instans alur kerja aplikasi logika hanya setelah instans sebelumnya selesai berjalan, setel pemicu untuk berjalan secara berurutan. Anda dapat menggunakan editor tampilan kode atau perancang alur kerja karena mengubah pengaturan konkurensi melalui perancang juga menambahkan atau memperbarui runtimeConfiguration.concurrency.runs properti dalam definisi pemicu yang mendasar dan sebaliknya.
Note
Jika Anda menyetel pemicu untuk berjalan secara berurutan baik dengan menggunakan perancang atau editor tampilan kode, jangan setel operationOptions properti ke Sequential pemicu di editor tampilan kode.
Jika tidak, Anda mendapatkan kesalahan validasi.
Mengedit dalam tampilan kode
Dalam definisi pemicu, setel salah satu properti ini, tapi tidak keduanya.
Setel runtimeConfiguration.concurrency.runs properti ke 1:
"<trigger-name>": {
"type": "<trigger-name>",
"recurrence": {
"frequency": "<time-unit>",
"interval": <number-of-time-units>,
},
"runtimeConfiguration": {
"concurrency": {
"runs": 1
}
}
}
-or-
Setel operationOptions properti ke SingleInstance:
"<trigger-name>": {
"type": "<trigger-name>",
"recurrence": {
"frequency": "<time-unit>",
"interval": <number-of-time-units>,
},
"operationOptions": "SingleInstance"
}
Untuk informasi selengkapnya, lihat Pengaturan konfigurasi runtime bahasa umum dan opsi Operasi.
Edit di perancang alur kerja
Di sudut kanan atas pemicu, pilih tombol elipsis (...), lalu pilih Pengaturan.
Di bawah Kontrol Konkurensi, atur Batas ke Aktif.
Seret penggeser Tingkat Paralelisme ke angka
1.
Jalankan perulangan "untuk setiap" secara berurutan
Untuk menjalankan iterasi perulangan "untuk setiap" hanya setelah iterasi sebelumnya selesai berjalan, setel tindakan "untuk setiap" agar berjalan secara berurutan. Anda dapat menggunakan editor tampilan kode atau perancang alur kerja karena mengubah konkurensi tindakan melalui perancang juga menambahkan atau memperbarui runtimeConfiguration.concurrency.repetitions properti dalam definisi tindakan yang mendasar dan sebaliknya.
Note
Saat Anda menyetel tindakan "untuk setiap" untuk berjalan secara berurutan baik dengan menggunakan perancang atau editor tampilan kode, jangan setel operationOptions properti ke Sequential tindakan di editor tampilan kode.
Jika tidak, Anda mendapatkan kesalahan validasi.
Mengedit dalam tampilan kode
Dalam definisi tindakan, setel salah satu properti ini, tapi tidak keduanya.
Setel runtimeConfiguration.concurrency.repetitions properti ke 1:
"For_each" {
"type": "Foreach",
"actions": { "<actions-to-run>" },
"foreach": "<for-each-expression>",
"runAfter": {},
"runtimeConfiguration": {
"concurrency": {
"repetitions": 1
}
}
}
-or-
Setel operationOptions properti ke Sequential:
"For_each" {
"type": "Foreach",
"actions": { "<actions-to-run>" },
"foreach": "<for-each-expression>",
"runAfter": {},
"operationOptions": "Sequential"
}
Untuk informasi selengkapnya, lihat Pengaturan konfigurasi runtime bahasa umum dan opsi Operasi.
Edit di perancang alur kerja
Di sudut kanan atas untuk setiap tindakan, pilih tombol elipsis (...), lalu pilih Pengaturan.
Di bawah Kontrol Konkurensi, atur Kontrol Konkurensi ke Aktif.
Seret penggeser Tingkat Paralelisme ke angka
1.
Jalankan tindakan dalam pola operasi sinkron
Secara default, tindakan HTTP dan tindakan APIConnection di Azure Logic Apps mengikuti pola operasi asinkronstandar, sementara tindakan Respons mengikuti pola operasi yang sinkron. Pola asinkron menentukan bahwa setelah tindakan memanggil atau mengirim permintaan ke titik akhir, layanan, sistem, atau API yang ditentukan, penerima segera mengembalikan respons "202 DITERIMA" . Kode ini mengonfirmasi bahwa penerima menerima permintaan tapi belum selesai diproses. Respons dapat menyertakan location header yang menentukan URL dan ID refresh yang dapat digunakan pemanggil untuk terus melakukan polling atau memeriksa status untuk permintaan asinkron hingga penerima berhenti memproses dan mengembalikan respons keberhasilan "200 OK" atau respons non-202 lainnya. Untuk informasi selengkapnya, lihat Integrasi layanan mikro asinkron memberlakukan otonomi layanan mikro.
Di Perancang Aplikasi Logika, tindakan HTTP, tindakan APIConnection, dan tindakan Respons memiliki pengaturan Pola Asinkron . Saat diaktifkan, pengaturan ini menentukan bahwa pemanggil tidak menunggu pemrosesan selesai dan dapat melanjutkan ke tindakan berikutnya tapi terus memeriksa status sampai pemrosesan berhenti. Jika dinonaktifkan, pengaturan ini menentukan bahwa pemanggil menunggu pemrosesan selesai sebelum melanjutkan ke tindakan berikutnya. Untuk menemukan pengaturan ini, ikuti langkah-langkah berikut:
Pada bilah judul tindakan HTTP, pilih tombol elipsis (...), yang membuka pengaturan tindakan.
Temukan pengaturan Pola Asinkron .
Dalam definisi JavaScript Object Notation (JSON) yang mendasari tindakan, tindakan HTTP dan tindakan APIConnection secara implisit mengikuti pola operasi asinkron.
Dalam beberapa skenario, Anda mungkin ingin tindakan untuk mengikuti pola sinkron sebagai gantinya. Misalnya, saat Anda menggunakan tindakan HTTP, Anda mungkin ingin:
Dalam kasus ini, Anda dapat membuat tindakan berjalan secara sinkron dengan menggunakan opsi ini:
Mengganti versi polling tindakan tersebut dengan versi webhook, jika tersedia.
Menonaktifkan perilaku asinkron tindakan dengan mengikuti salah satu opsi:
Di Azure Logic App Designer, nonaktifkan pengaturan Pola Asinkron.
Dalam definisi JSON yang mendasari tindakan, tambahkan
"DisableAsyncPattern"opsi operasi.
Menonaktifkan pengaturan Pola Asinkron
Di Perancang Aplikasi Logika, pada bilah judul tindakan, pilih tombol elipsis (...), yang membuka pengaturan tindakan.
Temukan pengaturan Pola Asinkron , ubah pengaturan ke Nonaktif jika diaktifkan, dan pilih Selesai.
Nonaktifkan pola asinkron dalam definisi JSON tindakan
Dalam definisi JSON yang mendasar tindakan, tambahkan dan atur properti "operationOptions" ke "DisableAsyncPattern" di bawah bagian tindakan "inputs" , misalnya:
"<some-long-running-action>": {
"type": "Http",
"inputs": { "<action-inputs>" },
"operationOptions": "DisableAsyncPattern",
"runAfter": {}
}
Mengautentikasi pemicu dan tindakan
Titik akhir HTTP dan HTTPS mendukung berbagai jenis autentikasi. Berdasarkan pemicu atau tindakan yang Anda gunakan untuk melakukan panggilan keluar atau permintaan untuk mengakses titik akhir ini, Anda dapat memilih dari berbagai rentang jenis autentikasi. Untuk informasi selengkapnya, lihat Menambahkan autentikasi ke panggilan keluar.
Langkah selanjutnya
- Pelajari selengkapnya tentang Bahasa Pemrogram Definisi Alur Kerja