Kebijakan IntegrationCallout

Halaman ini berlaku untuk Apigee dan Apigee Hybrid.

ikon kebijakan

Ringkasan

Kebijakan IntegrationCallout memungkinkan Anda menjalankan integrasi Apigee yang memiliki pemicu API. Namun, sebelum menjalankan integrasi, Anda harus menjalankan kebijakan SetIntegrationRequest. Kebijakan SetIntegrationRequest membuat objek permintaan dan membuat objek tersebut tersedia untuk kebijakan IntegrationCallout sebagai variabel alur. Objek permintaan memiliki detail integrasi seperti nama pemicu API, project ID integrasi, nama integrasi, dan detail lainnya yang dikonfigurasi dalam kebijakan SetIntegrationRequest. Kebijakan IntegrationCallout menggunakan variabel alur dari objek permintaan untuk menjalankan integrasi. Anda dapat mengonfigurasi kebijakan IntegrationCallout untuk menyimpan respons run integrasi dalam variabel alur.

Kebijakan IntegrationCallout berguna jika Anda ingin menjalankan integrasi di tengah alur proxy. Atau, daripada mengonfigurasi kebijakan IntegrationCallout, Anda juga dapat menjalankan integrasi dengan menentukan endpoint integrasi sebagai endpoint target. Untuk informasi selengkapnya, lihat IntegrationEndpoint.

Kebijakan ini merupakan Kebijakan yang dapat diperluas, dan penggunaan kebijakan ini mungkin memiliki implikasi biaya atau pemanfaatan, bergantung pada lisensi Apigee Anda. Untuk mengetahui informasi tentang jenis kebijakan dan implikasi penggunaan, lihat Jenis kebijakan.

<IntegrationCallout>

Menentukan kebijakan IntegrationCallout.

Nilai Default T/A
Wajib? Diperlukan
Type Jenis kompleks
Elemen Induk T/A
Elemen Turunan <DisplayName>
<AsyncExecution>
<Request>
<Response>

Tabel berikut memberikan deskripsi tingkat tinggi dari elemen turunan <IntegrationCallout>:

Elemen Turunan Wajib? Deskripsi
<DisplayName> Opsional Nama kustom untuk kebijakan.
<AsyncExecution> Opsional Menentukan apakah integrasi harus berjalan dalam mode sinkron atau mode asinkron.
<Request> Diperlukan Variabel flow memiliki objek permintaan yang dibuat oleh kebijakan SetIntegrationRequest.
<Response> Opsional Variabel alur untuk menyimpan respons integrasi.

Elemen <IntegrationCallout> menggunakan sintaksis berikut:

Sintaksis

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<IntegrationCallout continueOnError="[true|false]" enabled="[true|false]" name=POLICY_NAME>
  <DisplayName>POLICY_DISPLAY_NAME</DisplayName>
  <AsyncExecution>BOOLEAN_ASYNC_EXECUTION</AsyncExecution>
  <Request clearPayload="[true|false]">REQUEST_FLOW_VARIABLE_NAME</Request>
  <Response>RESPONSE_FLOW_VARIABLE_NAME</Response>
</IntegrationCallout>

Contoh

Contoh berikut menunjukkan definisi kebijakan IntegrationCallout:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<IntegrationCallout continueOnError="false" enabled="true" name="Integration-Callout">
  <DisplayName>Integration-Callout-1</DisplayName>
  <AsyncExecution>true</AsyncExecution>
  <Request clearPayload="true">my_request_flow_var</Request>
  <Response>my_response_flow_var</Response>
</IntegrationCallout>

Elemen ini memiliki atribut berikut yang sama untuk semua kebijakan:

Atribut Default Wajib? Deskripsi
name T/A Wajib

Nama internal kebijakan. Nilai atribut name dapat berisi huruf, angka, spasi, tanda hubung, garis bawah, dan titik. Nilai ini tidak boleh melebihi 255 karakter.

Atau, gunakan elemen <DisplayName> untuk memberi label kebijakan di editor proxy UI pengelolaan dengan nama natural-language yang berbeda.

continueOnError false Opsional Setel ke false untuk menampilkan error jika kebijakan gagal. Ini adalah perilaku yang wajar untuk sebagian besar kebijakan. Setel ke true agar eksekusi alur tetap berlanjut bahkan setelah kebijakan gagal. Lihat juga:
enabled true Opsional Setel ke true untuk menerapkan kebijakan. Setel ke false untuk menonaktifkan kebijakan. Kebijakan tidak akan diterapkan meskipun tetap melekat pada alur.
async   false Tidak digunakan lagi Atribut ini sudah tidak digunakan lagi.

Referensi elemen turunan

Bagian ini menjelaskan elemen turunan <IntegrationCallout>.

<DisplayName>

Gunakan selain atribut name untuk memberi label kebijakan di editor proxy UI pengelolaan dengan nama yang berbeda dan lebih alami.

Elemen <DisplayName> bersifat umum untuk semua kebijakan.

Nilai Default T/A
Wajib? Opsional. Jika Anda menghilangkan <DisplayName>, nilai atribut name kebijakan akan digunakan.
Jenis String
Elemen Induk <PolicyElement>
Elemen Turunan Tidak ada

Elemen <DisplayName> menggunakan sintaksis berikut:

Sintaksis

<PolicyElement>
  <DisplayName>POLICY_DISPLAY_NAME</DisplayName>
  ...
</PolicyElement>

Contoh

<PolicyElement>
  <DisplayName>My Validation Policy</DisplayName>
</PolicyElement>

Elemen <DisplayName> tidak memiliki atribut atau elemen turunan.

<AsyncExecution>

Menentukan mode untuk menjalankan integrasi. Anda dapat menjalankan integrasi secara sinkron atau asinkron.

Jika ditetapkan ke true, integrasi akan berjalan secara asinkron. Dan jika ditetapkan ke false, integrasi akan berjalan secara sinkron.

  • Mode asinkron: Jika permintaan untuk menjalankan integrasi mencapai endpoint, endpoint akan segera menampilkan ID eksekusi integrasi, tetapi memulai eksekusi integrasi pada waktu yang ditentukan oleh elemen <ScheduleTime>. Jika Anda belum menetapkan elemen <ScheduleTime>, integrasi dijadwalkan untuk segera dijalankan. Meskipun integrasi dijadwalkan untuk langsung berjalan, eksekusinya dapat dimulai setelah beberapa detik. Saat integrasi mulai dijalankan, dua hal berikut akan terjadi:
    • Integrasi ini menampilkan kode status 200 OK HTTP agar pemanggil dapat melanjutkan pemrosesan.
    • Kebijakan IntegrationCallout selesai.
    Setelah dimulai, integrasi akan memiliki batas waktu maksimum 50 menit untuk menyelesaikan eksekusi.
  • Mode sinkron: Saat permintaan untuk menjalankan integrasi mencapai endpoint, endpoint akan segera memulai eksekusi integrasi dan menunggu respons. Batas waktu maksimum untuk menyelesaikan eksekusi adalah 2 menit. Setelah menyelesaikan eksekusi, endpoint akan menampilkan respons dengan ID eksekusi dan data respons lainnya.
Nilai Default false
Wajib? Opsional
Type Boolean
Elemen Induk <IntegrationCallout>
Elemen Turunan Tidak ada

Elemen <AsyncExecution> menggunakan sintaksis berikut:

Sintaksis

<AsyncExecution>BOOLEAN</AsyncExecution>

Contoh

Contoh berikut menetapkan eksekusi asinkron ke true:

<AsyncExecution>true</AsyncExecution>

<Request>

Menentukan variabel flow yang memiliki objek permintaan yang dibuat oleh kebijakan SetIntegrationRequest. Kebijakan IntegrationCallout mengirimkan objek permintaan ini ke Integrasi Apigee untuk menjalankan integrasi.

Nilai Default T/A
Wajib? Diperlukan
Type String
Elemen Induk <IntegrationCallout>
Elemen Turunan Tidak ada

Elemen <Request> menggunakan sintaksis berikut:

Sintaksis

<Request clearPayload="true">FLOW_VARIABLE_NAME</Request>

Contoh

Contoh berikut menentukan bahwa objek permintaan tersedia dalam variabel alur my_request_flow_var:

<Request clearPayload="true">my_request_flow_var</Request>

Tabel berikut menjelaskan atribut <Request>:

Atribut Wajib? Jenis Deskripsi
clearPayload Opsional boolean

Menentukan apakah objek permintaan harus dihapus dari memori setelah mengirim permintaan untuk menjalankan integrasi.

  • Jika ditetapkan ke true, Apigee akan menghapus objek permintaan.
  • Jika ditetapkan ke false, Apigee tidak akan menghapus objek permintaan.

Jika atribut ini tidak ditentukan, nilai defaultnya adalah true dan objek permintaan akan dihapus dari memori.

<Response>

Menentukan variabel alur untuk menyimpan respons integrasi.

Jika Anda tidak menentukan elemen ini, kebijakan akan menyimpan respons dalam variabel alur integration.response.

Nilai Default integration.response
Wajib? Opsional
Type String
Elemen Induk <IntegrationCallout>
Elemen Turunan Tidak ada

Elemen <Response> menggunakan sintaksis berikut:

Sintaksis

<Response>FLOW_VARIABLE_NAME</Response>

Contoh

Contoh berikut menyimpan respons integrasi yang dijalankan dalam variabel alur my_response_flow_var:

<Response>my_response_flow_var</Response>

Kode error

Bagian ini menjelaskan kode masalah, pesan error, dan variabel kesalahan yang disetel oleh Apigee saat kebijakan ini memicu error. Informasi ini sangat penting jika Anda mengembangkan aturan fault untuk menangani kesalahan. Untuk mempelajari lebih lanjut, lihat Yang perlu Anda ketahui tentang error kebijakan dan Menangani kesalahan.

Error runtime

Error ini dapat terjadi saat kebijakan dieksekusi.

Kode kesalahan Status HTTP Penyebab
entities.UnresolvedVariable 500 Error ini terjadi jika Apigee tidak dapat me-resolve variabel integration.project.id atau integration.name.
steps.integrationcallout.ExecutionFailed 500

Error ini dapat terjadi jika layanan target backend menampilkan status error HTTP seperti 4xx atau 5xx. Kemungkinan penyebabnya meliputi:

  • Akun layanan yang di-deploy dengan proxy memiliki izin yang salah untuk menjalankan integrasi.
  • Integrasi atau pemicu API tidak ada.
  • Integrasi Apigee tidak diaktifkan untuk project Google Cloud Anda.
  • Anda telah mengonfigurasi elemen <ScheduleTime> dalam kebijakan SetIntegrationRequest dan kebijakan IntegrationCallout memiliki AsyncExecution yang ditetapkan ke false.
steps.integrationcallout.NullRequestVariable 500 Error ini terjadi jika variabel flow yang ditentukan dalam <Request> adalah null.
steps.integrationcallout.RequestVariableNotMessageType 500 Error ini terjadi jika variabel flow yang ditentukan oleh elemen Request bukan jenis message.
steps.integrationcallout.RequestVariableNotRequestMessageType 500 Error ini terjadi jika variabel flow yang ditentukan oleh elemen Request bukan jenis Request message.
messaging.adaptors.http.filter.GoogleTokenGenerationFailure 500

Error ini dapat terjadi karena konfigurasi akun layanan yang salah. Kemungkinan penyebabnya meliputi:

  • Akun layanan yang di-deploy dengan proxy tidak ada di project Anda.
  • Akun layanan yang di-deploy dengan proxy dinonaktifkan.

Variabel kesalahan

Setiap kali terjadi error eksekusi dalam kebijakan, Apigee akan menghasilkan pesan error. Anda dapat melihat pesan error ini dalam respons error. Sering kali, pesan error yang dihasilkan sistem mungkin tidak relevan dalam konteks produk Anda. Anda mungkin ingin menyesuaikan pesan error berdasarkan jenis error agar pesan menjadi lebih bermakna.

Untuk menyesuaikan pesan error, Anda dapat menggunakan aturan kesalahan atau kebijakan RaiseFault. Untuk mengetahui informasi tentang perbedaan antara aturan fault dan kebijakan RaiseFault, lihat kebijakan FaultRules vs. RaiseFault. Anda harus memeriksa kondisi menggunakan elemen Condition di aturan fault dan kebijakan RaiseFault. Apigee menyediakan variabel kesalahan yang unik untuk setiap kebijakan dan nilai variabel kesalahan ditetapkan saat kebijakan memicu error runtime. Dengan menggunakan variabel ini, Anda dapat memeriksa kondisi error tertentu dan mengambil tindakan yang sesuai. Untuk mengetahui informasi selengkapnya tentang cara memeriksa kondisi error, lihat Mem-build kondisi.

Tabel berikut menjelaskan variabel kesalahan khusus untuk kebijakan ini.

Variabel Dari mana Contoh
fault.name fault.name dapat cocok dengan kesalahan mana pun yang tercantum dalam tabel Error runtime. Nama kesalahan adalah bagian terakhir dari kode kesalahan. fault.name Matches "UnresolvedVariable"
IntegrationCallout.POLICY_NAME.failed POLICY_NAME adalah nama kebijakan yang ditentukan pengguna yang menampilkan kesalahan. IntegrationCallout.integration-callout-1.failed = true
Untuk informasi selengkapnya tentang error kebijakan, lihat Yang perlu Anda ketahui tentang error kebijakan.

Topik terkait

Jika Anda ingin mempelajari fitur Integrasi Apigee lebih lanjut, lihat Apa yang dimaksud dengan Integrasi Apigee?