Politika hataları hakkında bilmeniz gerekenler

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.