Halaman ini berlaku untuk Apigee dan Apigee Hybrid.
Lihat dokumentasi
Apigee Edge.
Topik ini menjelaskan struktur error kebijakan dan jenis variabel alur yang ditetapkan saat terjadi error kebijakan. Informasi ini sangat penting jika Anda mendesain dan menerapkan penanganan kesalahan untuk proxy Anda.
Topik ini mengasumsikan bahwa Anda memiliki pemahaman umum tentang cara kerja penanganan kesalahan di Apigee, dan bahwa Anda mengetahui apa itu aturan kesalahan. Jika Anda memerlukan peninjauan, lihat Menangani kesalahan. Informasi di sini juga akan membantu Anda membuka dan menggunakan Referensi error kebijakan.
Tentang respons error kebijakan default
Saat kebijakan memunculkan error, Apigee akan langsung memasuki alur error dan menghasilkan pesan error. Pesan yang dibuat sistem ini adalah objek JSON yang mencakup dua informasi: errorcode
dan faultstring
.
Contoh:
{ "fault":{ "detail":{ "errorcode":"steps.extractvariables.SourceMessageNotAvailable" }, "faultstring":"mymessage message is not available for ExtractVariable: ParseJsonResponse" } }
Mari kita dekonstruksi pesan error ini dengan cepat:
errorcode
terdiri dari prefix
dan error
name
, sebagai berikut: [prefix].[error_name]
. Pada contoh di atas
"steps.extractvariables
adalah awalan dan SourceMessageNotAvailable
adalah
nama error. Awalan memberi tahu Anda jenis kebijakan yang menyebabkan error. Pada contoh di atas, Anda dapat mengetahui bahwa ExtractVariables policy menyebabkan error dan nama errornya adalah
SourceMessageNotAvailable
.
faultstring
berisi deskripsi error. String kesalahan
biasanya menyertakan petunjuk untuk membantu Anda menemukan masalah spesifik yang menyebabkan error, seperti
nama kebijakan, nama variabel yang belum terselesaikan, atau apa pun yang menyebabkan error. Misalnya, dalam pesan error di atas, mymessage
adalah nama variabel pesan yang tidak terselesaikan yang dirujuk dalam kebijakan dan ParseJsonResponse
adalah nama kebijakan yang memicu error.
Variabel khusus untuk error kebijakan
Saat error kebijakan dipicu, variabel alur khusus error tertentu akan diisi. Variabel ini sangat berguna dalam penanganan kesalahan. Seperti yang dijelaskan dalam Menangani kesalahan, praktik umumnya adalah menangkap kesalahan kebijakan yang dihasilkan sistem dan melakukan tindakan berikutnya seperti membuat respons error kustom. Misalnya, karena alasan keamanan, Anda mungkin ingin mencegah klien melihat error dan kode status sebenarnya yang ditampilkan Apigee.
Variabel fault.name
Saat kebijakan memunculkan error, kebijakan akan menetapkan variabel alur fault.name
ke bagian
error_name
dari kode error (seperti yang dijelaskan di bagian sebelumnya). Sangat
umum untuk mengevaluasi variabel ini guna menjalankan aturan kesalahan secara bersyarat.
Berikut adalah contoh aturan kesalahan yang menguji nilai fault.name
:
<faultrule name="VariableOfNonMsgType"></faultrule><FaultRule name="Source Message Not Available Fault"> <Step> <Name>AM-CustomErrorMessage</Name> <Condition>(fault.name Matches "SourceMessageNotAvailable") </Condition> </Step> </FaultRule>
Yang perlu diingat adalah bahwa saat kebijakan memicu error, variabel fault.name
selalu ditetapkan ke nama error.
Variabel
[prefix].[policy_name].failed
Selain fault.name
, variabel lain yang umumnya diperiksa developer adalah
flag [prefix].[policy_name].failed
, yang disetel ke benar (true) atau salah (false) saat
kebijakan dijalankan. Dalam aturan kesalahan, Anda harus memeriksa kapan benar —
yaitu, untuk memeriksa apakah terjadi error. Berikut cara membuat kondisi yang memeriksa flag
[prefix].[policy_name].failed
. Untuk memeriksa variabel ini dengan benar, Anda perlu mengetahui dua hal:
- Nama kebijakan yang Anda periksa. Ini adalah nilai atribut nama kebijakan, bukan nama tampilan. Atribut ini selalu disertakan dalam XML definisi kebijakan.
- Awalan yang khusus untuk jenis kebijakan yang Anda periksa. (Kami akan menjelaskan cara menemukan awalan di bawah.)
Untuk mengilustrasikannya, berikut contoh aturan kesalahan lainnya. Perhatikan pada kondisi luar bagaimana nama variabel [prefix].[policy_name].failed
dibentuk. Dalam hal ini, awalan adalah
extractvariables
dan nama kebijakan adalah ParseJsonResponse
. Dalam
kasus ini, aturan kesalahan hanya akan dieksekusi jika variabel ini benar. Selain itu, berikut tipsnya: karena aturan kesalahan
dapat berisi beberapa langkah, pola ini adalah cara yang baik untuk mengatur aturan kesalahan ke dalam
blok.
<faultrule name="VariableOfNonMsgType"></faultrule><FaultRule name="Extract Variable Faults"> <Step> <Name>AM-CustomErrorMessage</Name> <Condition>(fault.name Matches "SourceMessageNotAvailable") </Condition> </Step> <Condition>(extractvariables.ParseJsonResponse.failed = true) </Condition> </FaultRule>
Tentang variabel
error
dan message
Variabel error
hanya tersedia dalam alur error
proxy. Anda bisa mendapatkan informasi berguna dari variabel error
, seperti pesan error, kode
status, dan sebagainya. Pola pemformatan untuk variabel error adalah sebagai berikut:
error.ERROR_COMPONENT = VALUE
Contoh:
error.message = "request message is not available for ExtractVariable: ParseJsonResponse"
dan
error.status.code = "500"
Variabel message
juga tersedia dalam alur error dan dapat digunakan untuk
tujuan yang sama dengan variabel error
. Variabel pesan bersifat khusus karena
bersifat kontekstual. Dalam alur permintaan, variabel ini berperilaku seperti variabel permintaan, dan dalam alur respons, variabel ini
dapat digunakan untuk mendapatkan/menetapkan nilai respons.
Lihat Referensi variabel alur
untuk mengetahui informasi tentang semua variabel Apigee, termasuk error
dan
message
.