Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Bu konuda, politika hatalarının yapısı ve politika hatası oluştuğunda ayarlanan akış değişkeni türleri açıklanmaktadır. Bu bilgiler, proxy'leriniz için hata işleme özelliğini tasarlıyor ve uyguluyorsanız gereklidir.
Bu konuda, Edge'de hata işlemenin nasıl işlediğine dair genel bir anlayışa sahip olduğunuz ve hata kurallarının ne olduğunu bildiğiniz varsayılmaktadır. İnceleme yapılması gerekiyorsa Hataları işleme başlıklı makaleyi inceleyin. Buradaki bilgiler, Politika hatası referansında gezinmenize ve bu referansı kullanmanıza da yardımcı olur.
Varsayılan politika hatası yanıtı hakkında
Bir politika hata oluşturduğunda Edge hemen hata akışına girer ve bir hata mesajı oluşturur. Sistem tarafından oluşturulan bu mesaj, iki bilgi parçası içeren bir JSON nesnesidir: errorcode ve faultstring.
Örneğin:
{ "fault":{ "detail":{ "errorcode":"steps.extractvariables.SourceMessageNotAvailable" }, "faultstring":"foo message is not available for ExtractVariable: ParseJsonResponse" } }
Bu hata mesajını kısaca inceleyelim:
Hata kodu, şu şekilde bir önek ve bir hata adından oluşur: [prefix].[error_name]
. Yukarıdaki örnekte
"steps.extractvariables
" önek, SourceMessageNotAvailable
ise hata
adıdır. Ön ek, hatayı hangi tür politikanın oluşturduğunu belirtir. Yukarıdaki örnekte, hatayı bir Değişkenleri Ayıkla politikasının oluşturduğunu ve hata adının SourceMessageNotAvailable
olduğunu görebilirsiniz.
faultstring, hatanın açıklamasını içerir. Hata dizesi genellikle politika adı, çözümlenmemiş bir değişkenin adı veya hataya neyin katkıda bulunduğu gibi hataya neden olan belirli bir sorunu bulmanıza yardımcı olacak ipuçları içerir. Örneğin, yukarıdaki hata mesajında "foo
", politikada referans verilen çözülmemiş bir ileti değişkeninin adı, "ParseJsonResponse
" ise hatayı tetikleyen politikanın adıdır.
Politika hatalarına özel değişkenler
Bir politika hatası tetiklendiğinde, hataya özgü belirli akış değişkenleri doldurulur. Bu değişkenler, hata işlemede son derece yararlıdır. Hataları işleme konusunda açıklandığı gibi, sistem tarafından oluşturulan politika hatalarını yakalamak ve özel hata yanıtı oluşturmak gibi bir işlem gerçekleştirmek yaygın bir uygulamadır. Örneğin, güvenlik nedeniyle istemcilerin, Edge'in döndürdüğü gerçek hataları ve durum kodlarını görmesini engellemek isteyebilirsiniz.
fault.name
değişkeni
Bir politika hata verdiğinde fault.name
akış değişkenini hata kodunun error_name
bölümüne ayarlar (önceki bölümde açıklandığı gibi). Bu değişken, hata kurallarını koşullu olarak uygulamak için değerlendirildiğinde çok yaygın bir şekilde değerlendirilir.
Aşağıda, fault.name
değerini test eden örnek bir hata kuralı verilmiştir:
<faultrule name="VariableOfNonMsgType"<>/faultrule><FaultRule name="Source Message Not Available Fault"> <Step> <Name>AM-CustomErrorMessage</Name> <Condition>(fault.name Matches "SourceMessageNotAvailable") </Condition> </Step> </FaultRule>
Bir politika bir hatayı tetiklediğinde fault.name
değişkeninin her zaman hata adına ayarlandığını unutmayın.
[prefix].[policy_name].failed
değişkeni
fault.name
dışında, geliştiricilerin genellikle kontrol ettiği bir diğer değişken de
[prefix].[policy_name].failed
işaretidir. Bu işaret, bir politika yürütüldüğünde doğru veya yanlış değerine
ayarlanır. Hata kurallarında, true (doğru) değerini ne zaman kontrol edeceğinizi, yani bir hata oluşup oluşmadığını kontrol etmenizi öneririz. [prefix].[policy_name].failed
işaretini kontrol eden bir koşulu nasıl oluşturacağınız aşağıda açıklanmıştır. Bu değişkeni doğru şekilde kontrol etmek için iki bilgiye ihtiyacınız var:
- Kontrol ettiğiniz politikanın adı. Bu, görünen adın değil, politikanın ad özelliğinin değeridir. Bu özellik her zaman politika tanımının XML'ine dahil edilir.
- Kontrol ettiğiniz politika türüne özel bir önek. (Ön eki nasıl bulacağınız aşağıda açıklanacaktır.)
Bunu açıklamak için başka bir hata kuralı örneğini aşağıda bulabilirsiniz. Dış koşulda [prefix].[policy_name].failed
değişken adının nasıl oluşturulduğuna dikkat edin. Bu durumda önek extractvariables
, politika adı ise ParseJsonResponse
olur. Bu durumda, hata kuralı yalnızca bu değişken doğruysa yürütülür. Bir ipucu da verelim: Hata kuralları birden fazla adım içerebileceğinden bu kalıp, hata kurallarını bloklara ayırmanın güzel bir yoludur.
<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>
error
ve message
değişkenleri hakkında
error
değişkeni yalnızca proxy'nin hata akışında kullanılabilir. Hata değişkeninden hata mesajı, durum kodu, neden ifadesi gibi faydalı bilgiler edinebilirsiniz. Hata değişkeninin biçimlendirme kalıbı:
error.[error_component] = [value]
Örneğin:
error.message
= "request message is not available for ExtractVariable:
ParseJsonResponse
"
ve
error.status.code = "500"
message
değişkeni hata akışında da mevcut olup error
değişkeniyle benzer amaçlar için kullanılabilir. Mesaj değişkeni, bağlama dayalı olduğu için özeldir. İstek akışında istek değişkeni gibi davranır ve yanıt akışında yanıt değerlerini almak/ayarlamak için kullanılabilir. Daha fazla bilgi edinmek istiyorsanız Mesaj değişkenleri için kullanım alanları bölümüne bakın.
error
ve message
dahil olmak üzere tüm Edge değişkenleriyle ilgili bilgi için Değişkenler referansı bölümüne bakın.