Bagikan melalui


Memanggil titik akhir HTTP atau HTTPS eksternal dari alur kerja di Azure Logic Apps

Berlaku untuk: Azure Logic Apps (Konsumsi + Standar)

Beberapa skenario mungkin mengharuskan Anda membuat alur kerja aplikasi logika yang mengirim permintaan keluar ke titik akhir pada layanan atau sistem lain melalui HTTP atau HTTPS. Misalnya, Anda ingin memantau titik akhir layanan untuk situs web Anda dengan memeriksa titik akhir tersebut pada jadwal tertentu. Ketika peristiwa tertentu terjadi di titik akhir tersebut, seperti situs web Anda turun, peristiwa tersebut memicu alur kerja Anda dan menjalankan tindakan dalam alur kerja tersebut.

Catatan

Untuk membuat alur kerja yang menerima dan merespons panggilan HTTPS masuk sebagai gantinya, lihat Membuat alur kerja yang dapat Anda panggil, picu, atau sarangkan menggunakan titik akhir HTTPS di Azure Logic Apps dan tindakan Pemicu permintaan dan Respons bawaan.

Panduan ini menunjukkan cara menggunakan pemicu HTTP dan tindakan HTTP sehingga alur kerja Anda dapat mengirim panggilan keluar ke layanan dan sistem lain, misalnya:

  • Untuk memeriksa atau melakukan polling titik akhir pada jadwal berulang, tambahkan pemicu HTTP sebagai langkah pertama dalam alur kerja Anda. Setiap kali pemicu memeriksa titik akhir, pemicu akan memanggil atau mengirim permintaan ke titik akhir. Respons titik akhir menentukan apakah alur kerja Anda berjalan. Pemicu meneruskan konten apa pun dari respons titik akhir terhadap tindakan di alur kerja Anda.

  • Untuk memanggil titik akhir dari tempat lain di alur kerja Anda, tambahkan tindakan HTTP. Respons titik akhir menentukan bagaimana sisa tindakan alur kerja Anda berjalan.

Prasyarat

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

  • URL untuk titik akhir tujuan yang ingin Anda panggil

  • Alur kerja aplikasi logika dari tempat Anda ingin memanggil titik akhir tujuan. Untuk memulai dengan pemicu HTTP, Anda memerlukan alur kerja kosong. Untuk menggunakan tindakan HTTP, mulai alur kerja Anda dengan pemicu apa pun yang Anda inginkan. Contoh ini menggunakan pemicu HTTP sebagai langkah pertama.

referensi teknis Koneksi or

Untuk informasi teknis tentang parameter pemicu dan tindakan, lihat bagian berikut ini:

Tambahkan pemicu HTTP

Pemicu bawaan ini melakukan panggilan HTTP ke URL yang ditentukan untuk titik akhir dan mengembalikan respons.

  1. Di portal Azure, buka sumber daya aplikasi logika Standar dan alur kerja kosong di perancang.

  2. Ikuti langkah-langkah umum ini untuk menambahkan pemicu bawaan bernama HTTP ke alur kerja Anda.

    Contoh ini mengganti nama pemicu menjadi pemicu HTTP - URL titik akhir panggilan sehingga pemicu memiliki nama yang lebih deskriptif. Selain itu, contoh nanti menambahkan tindakan HTTP, dan nama operasi dalam alur kerja Anda harus unik.

  3. Berikan nilai untuk parameter pemicu HTTP yang ingin Anda sertakan dalam panggilan ke titik akhir tujuan. Siapkan pengulangan untuk seberapa sering Anda ingin pemicu memeriksa titik akhir tujuan.

    Jika Anda memilih jenis autentikasi selain Tidak Ada, pengaturan autentikasi berbeda berdasarkan pilihan Anda. Untuk informasi selengkapnya tentang jenis autentikasi yang tersedia untuk HTTP, lihat topik berikut ini:

  4. Untuk menambahkan parameter lain yang tersedia, buka daftar Parameter tingkat lanjut, dan pilih parameter yang Anda inginkan.

  5. Tambahkan tindakan lain yang ingin Anda jalankan saat pemicu diaktifkan.

  6. Setelah selesai, simpan alur kerja. Di bar alat perancang, pilih Simpan.

Tambahkan tindakan HTTP

Pemicu bawaan ini melakukan panggilan HTTP ke URL yang ditentukan untuk titik akhir dan mengembalikan respons.

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

    Contoh ini menggunakan pemicu HTTP yang ditambahkan di bagian sebelumnya sebagai langkah pertama.

  2. Ikuti langkah-langkah umum ini untuk menambahkan tindakan bawaan bernama HTTP ke alur kerja Anda.

    Contoh ini mengganti nama tindakan menjadi tindakan HTTP - URL titik akhir panggilan sehingga langkah tersebut memiliki nama yang lebih deskriptif. Selain itu, nama operasi dalam alur kerja Anda harus unik.

  3. Berikan nilai untuk parameter tindakan HTTP yang ingin Anda sertakan dalam panggilan ke titik akhir tujuan.

    Jika Anda memilih jenis autentikasi selain Tidak Ada, pengaturan autentikasi berbeda berdasarkan pilihan Anda. Untuk informasi selengkapnya tentang jenis autentikasi yang tersedia untuk HTTP, lihat topik ini:

  4. Untuk menambahkan parameter lain yang tersedia, buka daftar Parameter tingkat lanjut, dan pilih parameter yang Anda inginkan.

  5. Setelah selesai, simpan alur kerja. Di bar alat perancang, pilih Simpan.

Output pemicu dan tindakan

Berikut adalah informasi selengkapnya tentang output dari pemicu atau tindakan HTTP, yang mengembalikan informasi berikut:

Properti Tipe Deskripsi
headers Objek JSON Header dari permintaan
body Objek JSON Objek dengan konten isi dari permintaan
status code Bilangan bulat Kode status dari permintaan
Kode status Deskripsi
200 OK
202 Diterima
400 Permintaan Buruk
401 Tidak diizinkan
403 Terlarang
404 Tidak Ditemukan
500 Kesalahan Server Internal Terjadi kesalahan yang tidak diketahui.

Keamanan URL untuk panggilan keluar

Untuk informasi tentang enkripsi, keamanan, dan otorisasi untuk panggilan keluar dari alur kerja Anda, seperti Keamanan Lapisan Transportasi (TLS), yang sebelumnya dikenal sebagai Secure Sockets Layer (SSL), sertifikat yang ditandatangani sendiri, atau Microsoft Entra ID Open Authentication (Microsoft Entra ID OAuth), lihat Akses dan data aman - Akses untuk panggilan keluar ke layanan dan sistem lain.

Autentikasi untuk lingkungan penyewa tunggal

Jika Anda memiliki sumber daya aplikasi logika Standar di Azure Logic Apps penyewa tunggal, dan Anda ingin menggunakan operasi HTTP dengan salah satu jenis autentikasi berikut, pastikan untuk menyelesaikan langkah-langkah penyiapan tambahan untuk jenis autentikasi yang sesuai. Jika tidak, panggilan gagal.

Autentikasi sertifikat TSL/SSL

  1. Di pengaturan aplikasi sumber daya aplikasi logika Anda, tambahkan atau perbarui pengaturan aplikasi, WEBSITE_LOAD_ROOT_CERTIFICATES.

  2. Untuk nilai pengaturan, berikan thumbprint untuk sertifikat TSL/SSL Anda sebagai sertifikat akar tepercaya.

    "WEBSITE_LOAD_ROOT_CERTIFICATES": "<thumbprint-for-TLS/SSL-certificate>"

Misalnya, jika Anda bekerja di Visual Studio Code, ikuti langkah-langkah berikut:

  1. Buka file local.settings.json proyek aplikasi logika Anda.

  2. Di objek JSON Values, tambahkan atau perbarui pengaturan WEBSITE_LOAD_ROOT_CERTIFICATES:

    {
       "IsEncrypted": false,
       "Values": {
          <...>
          "AzureWebJobsStorage": "UseDevelopmentStorage=true",
          "WEBSITE_LOAD_ROOT_CERTIFICATES": "<thumbprint-for-TLS/SSL-certificate>",
          <...>
       }
    }
    

    Catatan

    Untuk menemukan thumbprint, ikuti langkah-langkah berikut:

    1. Pada menu sumber daya aplikasi logika Anda, di bawah Pengaturan, pilih Pengaturan>TLS/SSL Sertifikat Kunci Privat (.pfx) atau Sertifikat Kunci Publik (.cer).

    2. Temukan sertifikat yang ingin Anda gunakan, dan salin thumbprint.

    Untuk informasi selengkapnya, tinjau Temukan thumbprint - Azure App Service.

Untuk informasi selengkapnya, tinjau dokumentasi berikut ini:

Sertifikat klien atau Microsoft Entra ID OAuth dengan autentikasi jenis kredensial "Sertifikat"

  1. Di pengaturan aplikasi sumber daya aplikasi logika Anda, tambahkan atau perbarui pengaturan aplikasi, WEBSITE_LOAD_USER_PROFILE.

  2. Untuk nilai pengaturan, tentukan 1.

    "WEBSITE_LOAD_USER_PROFILE": "1"

Misalnya, jika Anda bekerja di Visual Studio Code, ikuti langkah-langkah berikut:

  1. Buka file local.settings.json proyek aplikasi logika Anda.

  2. Di objek JSON Values, tambahkan atau perbarui pengaturan WEBSITE_LOAD_USER_PROFILE:

    {
       "IsEncrypted": false,
       "Values": {
          <...>
          "AzureWebJobsStorage": "UseDevelopmentStorage=true",
          "WEBSITE_LOAD_USER_PROFILE": "1",
          <...>
       }
    }
    

Untuk informasi selengkapnya, tinjau dokumentasi berikut ini:

Konten dengan jenis multibagian/data formulir

Untuk menangani konten yang memiliki jenis multipart/form-data dalam permintaan HTTP, Anda dapat menambahkan objek JSON yang menyertakan dan atribut $content-type dan $multipartke isi permintaan HTTP dengan menggunakan format ini.

"body": {
   "$content-type": "multipart/form-data",
   "$multipart": [
      {
         "body": "<output-from-trigger-or-previous-action>",
         "headers": {
            "Content-Disposition": "form-data; name=file; filename=<file-name>"
         }
      }
   ]
}

Misalnya, Anda memiliki alur kerja yang mengirim permintaan HTTP POST untuk file Excel ke situs web dengan menggunakan API situs tersebut, yang mendukung jenisnya multipart/form-data . Contoh berikut menunjukkan bagaimana tindakan ini mungkin muncul:

Alur kerja standar

Cuplikan layar memperlihatkan alur kerja Standar dengan tindakan HTTP dan data formulir multipihak.

Alur kerja konsumsi

Cuplikan layar memperlihatkan alur kerja Konsumsi dengan tindakan HTTP dan data formulir multipihak.

Berikut adalah contoh yang sama yang menunjukkan definisi JSON tindakan HTTP dalam definisi alur kerja yang mendasar:

"HTTP_action": {
   "inputs": {
      "body": {
         "$content-type": "multipart/form-data",
         "$multipart": [
            {
               "body": "@trigger()",
               "headers": {
                  "Content-Disposition": "form-data; name=file; filename=myExcelFile.xlsx"
               }
            }
         ]
      },
      "method": "POST",
      "uri": "https://finance.contoso.com"
   },
   "runAfter": {},
   "type": "Http"
}

Konten dengan jenis application/x-www-form-urlencoded

Untuk menyediakan data yang dikodekan url formulir dalam isi untuk permintaan HTTP, Anda harus menentukan bahwa data memiliki application/x-www-form-urlencoded jenis konten. Di pemicu atau tindakan HTTP, tambahkan header content-type. Atur nilai header ke application/x-www-form-urlencoded.

Misalnya, Anda memiliki aplikasi logika yang mengirim permintaan HTTP POST ke situs web, yang mendukung jenis application/x-www-form-urlencoded. Berikut adalah tampilan tindakan ini:

Alur kerja standar

Cuplikan layar yang memperlihatkan alur kerja Standar dengan permintaan HTTP dan header jenis konten diatur ke application/x-www-form-urlencoded.

Alur kerja konsumsi

Cuplikan layar yang memperlihatkan alur kerja Konsumsi dengan permintaan HTTP dan header jenis konten diatur ke application/x-www-form-urlencoded.

Perilaku permintaan-respons asinkron

Untuk alur kerja stateful di Azure Logic Apps multipenyewa dan penyewa tunggal, semua tindakan berbasis HTTP mengikuti pola operasi asinkron standar sebagai perilaku default. Pola ini menentukan bahwa setelah tindakan HTTP 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 header location yang menentukan URL dan ID refresh yang dapat digunakan pemanggil untuk melakukan polling atau memeriksa status permintaan asinkron hingga penerima berhenti memproses dan mengembalikan respons berhasil "200 OK" atau respons non-202 lainnya. Namun, pemanggil tidak perlu menunggu permintaan selesai diproses dan dapat terus menjalankan tindakan berikutnya. Untuk informasi selengkapnya, lihat Integrasi layanan mikro asinkron memberlakukan otonomi layanan mikro.

Untuk alur kerja tanpa status dalam Azure Logic Apps penyewa tunggal, tindakan berbasis HTTP tidak menggunakan pola operasi asinkron. Sebaliknya, hanya berjalan secara sinkron, menampilkan respons "202 ACCEPTED" sebagaimana adanya, dan melanjutkan ke langkah berikutnya dalam eksekusi alur kerja. Jika respons menyertakan header location, alur kerja tanpa status tidak akan melakukan polling URI yang ditentukan untuk memeriksa status. Untuk mengikuti pola operasi asinkron standar, gunakan alur kerja berstatus sebagai gantinya.

  • Definisi JavaScript Object Notation (JSON) yang mendasari tindakan HTTP secara implisit mengikuti pola operasi asinkron.

  • Tindakan HTTP, tetapi tidak memicu, memiliki pengaturan Pola Asinkron, yang diaktifkan secara default. Pengaturan ini menentukan bahwa pemanggil tidak menunggu pemrosesan selesai dan dapat melanjutkan ke tindakan berikutnya tetapi terus memeriksa status sampai pemrosesan berhenti. Jika dinonaktifkan, pengaturan ini menentukan bahwa pemanggil menunggu pemrosesan selesai sebelum melanjutkan ke tindakan berikutnya.

    Untuk menemukan pengaturan Pola Asinkron, ikuti langkah-langkah ini, berdasarkan apakah Anda memiliki alur kerja Standar atau Konsumsi:

    Alur kerja standar*

    1. Di perancang alur kerja, pilih tindakan HTTP. Pada panel informasi yang terbuka, pilih Pengaturan.

    2. Di bawah Jaringan, temukan pengaturan Pola Asinkron.

    Alur kerja konsumsi

    1. Di perancang alur kerja, pada bilah judul tindakan HTTP, pilih tombol elipsis (...), yang membuka pengaturan tindakan.

    2. Temukan pengaturan Pola Asinkron.

Menonaktifkan operasi asinkron

Terkadang, Anda mungkin ingin menonaktifkan perilaku asinkron tindakan HTTP dalam skenario tertentu, misalnya, ketika Anda ingin:

Matikan pengaturan Pola Asinkron

  1. Di perancang alur kerja, pilih tindakan HTTP, dan pada panel informasi yang terbuka, pilih Pengaturan.

  2. Di bawah Jaringan, temukan pengaturan Pola Asinkron. Aktifkan pengaturan ke Nonaktif jika diaktifkan.

Nonaktifkan pola asinkron dalam definisi JSON tindakan

Dalam definisi JSON yang mendasari tindakan HTTP, tambahkan opsi operasi "DisableAsyncPattern" ke definisi tindakan sehingga tindakan mengikuti pola operasi sinkron sebagai gantinya. Untuk informasi selengkapnya, lihat juga Menjalankan tindakan dalam pola operasi yang sinkron.

Menghindari batas waktu HTTP untuk tugas yang berjalan lama

Permintaan HTTP memiliki batasan waktu. Jika Anda memiliki tindakan HTTP yang berjalan lama yang kehabisan waktu karena batasan ini, Anda memiliki opsi ini:

  • Nonaktifkan pola operasi asinkron tindakan HTTP sehingga tindakan tidak terus-menerus melakukan polling atau memeriksa status permintaan. Sebaliknya, tindakan tersebut menunggu penerima untuk merespons dengan status dan hasil setelah permintaan selesai diproses.

  • Ganti tindakan HTTP dengan Tindakan HTTP Webhook, yang menunggu penerima untuk merespons dengan status dan hasil setelah permintaan selesai diproses.

Menyiapkan interval antara upaya percobaan ulang dengan header Retry-After

Untuk menentukan jumlah detik antara upaya percobaan ulang, Anda dapat menambahkan header Retry-After ke respons tindakan HTTP. Misalnya, jika titik akhir tujuan mengembalikan 429 - Too many requests kode status, Anda dapat menentukan interval yang lebih panjang antara percobaan ulang. Header Retry-After juga bekerja dengan kode status 202 - Accepted.

Berikut adalah contoh yang sama yang menunjukkan respons tindakan HTTP yang berisi Retry-After:

{
    "statusCode": 429,
    "headers": {
        "Retry-After": "300"
    }
}

Dukungan penomoran halaman

Terkadang, layanan tujuan merespons dengan mengembalikan hasil satu halaman pada satu waktu. Jika respons menentukan halaman berikutnya dengan properti nextLink atau @odata.nextLink , Anda dapat mengaktifkan pengaturan Pagination pada tindakan HTTP. Pengaturan ini menyebabkan tindakan HTTP secara otomatis mengikuti tautan ini dan mendapatkan halaman berikutnya. Namun, jika respons menentukan halaman berikutnya dengan tag lain, Anda mungkin harus menambahkan perulangan ke alur kerja Anda. Buat perulangan ini mengikuti tag tersebut dan dapatkan setiap halaman secara manual hingga tag null.

Nonaktifkan pemeriksaan header lokasi

Beberapa titik akhir, layanan, sistem, atau API mengembalikan respons 202 ACCEPTED yang tidak memiliki header location. Untuk menghindari tindakan HTTP terus-menerus memeriksa status permintaan saat header location tidak ada, Anda dapat memilih opsi ini:

  • Nonaktifkan pola operasi asinkron tindakan HTTP sehingga tindakan tidak terus-menerus melakukan polling atau memeriksa status permintaan. Sebaliknya, tindakan tersebut menunggu penerima untuk merespons dengan status dan hasil setelah permintaan selesai diproses.

  • Ganti tindakan HTTP dengan Tindakan HTTP Webhook, yang menunggu penerima untuk merespons dengan status dan hasil setelah permintaan selesai diproses.

Masalah umum

Header HTTP yang dihilangkan

Jika pemicu atau tindakan HTTP menyertakan header ini, Azure Logic Apps menghapus header ini dari pesan permintaan yang dihasilkan tanpa menampilkan peringatan atau kesalahan apa pun:

  • Header Accept-* kecuali untuk Accept-version
  • Allow
  • Header Content-* kecuali untuk Content-Disposition, Content-Encoding, dan Content-Type, yang diutamakan ketika Anda menggunakan operasi POST dan PUT. Namun, Azure Logic Apps menghilangkan header ini saat Anda menggunakan operasi GET.
  • Cookie header, tetapi Azure Logic Apps mematuhi nilai apa pun yang Anda tentukan menggunakan properti Cookie .
  • Expires
  • Host
  • Last-Modified
  • Origin
  • Set-Cookie
  • Transfer-Encoding

Meskipun Azure Logic Apps tidak akan menghentikan Anda menyimpan aplikasi logika yang menggunakan pemicu atau tindakan HTTP dengan header ini, Azure Logic Apps mengabaikan header ini.

Konten respons tidak cocok dengan tipe konten yang diharapkan

Tindakan HTTP melemparkan kesalahan BadRequest jika tindakan HTTP memanggil API backend dengan Content-Type header yang diatur ke aplikasi/json, tetapi respons dari backend tidak benar-benar berisi konten dalam format JSON, yang gagal dalam validasi format JSON internal.

Langkah berikutnya