Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
Bu konuda, politika hatalarının yapısı ve etkili olan akış değişkenlerinin türleri bir politika hatası oluştuğunda ayarlanır. Proje tasarlarken ve yürütmede proxy'leriniz için hata işleme uygulayabilirsiniz.
Bu konuda, Edge'de hata işlemenin nasıl işlediğine dair genel bilginiz olduğu ve bilmeniz gerekir. İnceleme yapılması gerekiyorsa Hataları işleme başlıklı makaleyi inceleyin. Buradaki bilgiler, Politika hatası referansı'nı kullanmanıza da yardımcı olacak.
Varsayılan politika hatası yanıtı hakkında
Bir politika hata verdiğinde Edge hemen hata akışına girer ve hata üretir mesajını alırsınız. Sistem tarafından oluşturulan bu mesaj, iki bit bilgi içeren bir JSON nesnesidir: errorcode ve bir faultstring.
Örneğin:
{ "fault":{ "detail":{ "errorcode":"steps.extractvariables.SourceMessageNotAvailable" }, "faultstring":"foo message is not available for ExtractVariable: ParseJsonResponse" } }
Bu hata mesajının yapısını hızlıca çıkaralım:
errorcode bir önek ve bir hatadan oluşur
name, şu şekildedir: [prefix].[error_name]
. Yukarıdaki örnekte
"steps.extractvariables
" önek olup SourceMessageNotAvailable
ise
girin. Önek, hatanın ne tür bir politika oluşturduğunu belirtir. Yukarıda
Örneğin, Değişkenleri Ayıklama politikasının hata oluşturduğunu ve hata adının
SourceMessageNotAvailable
faultstring, hatanın açıklamasını içerir. Hata dizesi
genellikle hataya neden olan belirli bir sorunu bulmanıza yardımcı olacak ipuçlarını içerir:
çözümlenmemiş bir değişkenin adı veya hataya yol açan herhangi bir şey olabilir. Örneğin,
örnek, yukarıdaki hata mesajında, "foo
" henüz çözüme ulaştırılmamış
politikada referans verilen mesaj değişkeni ve "ParseJsonResponse
" adı
ilkeniz geçerli olacaktır.
Politika hatalarına özel değişkenler
Bir politika hatası tetiklendiğinde hataya özel belirli akış değişkenleri doldurulur. Bu değişkenleri de hata işlemede son derece yararlıdır. Hataları yönetme konusunda açıklandığı gibi, hatalarınızı sistem tarafından oluşturulan politika hatalarını yakalayın ve özel hata yanıtı ekleyin. Örneğin, güvenlik nedeniyle müşterilerin döndürdüğü gerçek hataları ve durum kodlarını gördüğünden emin olun.
fault.name
değişken
Bir politika hata verdiğinde fault.name
akış değişkenini
Hata kodunun error_name
bölümü (önceki bölümde açıklandığı gibi). Bu çok
bu değişkeni koşullu olarak uygulamak için kullanılan yaygın bir yöntemdir.
fault.name
değerini test eden örnek bir hata kuralını aşağıda bulabilirsiniz:
<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şkeni her zaman hata adına ayarlanır.
[prefix].[policy_name].failed
değişken
fault.name
dışında, geliştiricilerin sıkça kontrol ettiği bir diğer değişken de
Yeni bir değer sunulduğunda doğru veya yanlış olarak ayarlanan [prefix].[policy_name].failed
işareti
politikası yürütür. Hata kurallarında, hatanın doğru olup olmadığını kontrol edin.
Yani bir hata oluşup oluşmadığını kontrol etmek için kullanılır. Burada,
[prefix].[policy_name].failed
işareti. Bu değişkeni doğru şekilde kontrol etmek için,
iki şeyi biliyorum:
- Kontrol ettiğiniz politikanın adı. Bu, politika ad özelliğine değil, görünen ad özelliğine dikkat edin. Bu özellik politikaya her zaman dahil edilir XML dosyası olarak kaydedebilirsiniz.
- Kontrol ettiğiniz politika türüne özel bir önek. ( öneki nasıl bulacağınızı aşağıda görebilirsiniz.)
Sorunu açıklamak için aşağıda başka bir hata kuralı örneğini bulabilirsiniz. Dış koşulda
[prefix].[policy_name].failed
değişken adı oluşturuldu. Bu durumda, önek
extractvariables
ve politika adı: ParseJsonResponse
. Burada
hata kuralı yalnızca bu değişken doğruysa yürütülür. Size bir ipucu vereyim: Hata;
birden fazla adım içerebilir. Bu kalıp, hata kurallarını farklı düzeylerde
engeller.
<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
error
değişkeni yalnızca
temsil eder. Hata değişkeninden hata mesajı, durum gibi yararlı bilgiler edinebilirsiniz.
kod, neden ifadesi, vb. bulunur. Hata değişkeninin biçimlendirme kalıbı:
error.[error_component] = [value]
Örneğin:
error.message
= "request message is not available for ExtractVariable:
ParseJsonResponse
inç
ve
.
error.status.code = "500"
message
değişkeni hata akışında da mevcut olup
error
değişkeniyle benzer amaçlara hizmet eder. Mesaj değişkeni özeldir,
bağlamsaldır. İstek akışında bir 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 için
durumlar için kullanılabilir.
Değişkenler referansı başlıklı makaleyi inceleyin
error
ve dahil olmak üzere tüm Edge değişkenleri hakkında bilgi için
message
.