FlowAçıklama politikalı çalışma zamanı hatasını giderme

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

SharedFlowNotFound

Hata kodu

flow.SharedFlowNotFound

Hata yanıtı gövdesi

{
    "fault": {
        "faultstring": "Shared Flow shared_flow_name Not Found",
        "detail": {
            "errorcode": "flow.SharedFlowNotFound"
        }
    }
}

Olası Nedenler

Bu hatanın olası nedenleri şunlardır:

Neden Açıklama
Paylaşılan akış kullanılamıyor Paylaşılan akış mevcut değil.
Paylaşılan akış dağıtılmadı Paylaşılan akış mevcut ancak dağıtılmamış.

Neden: Paylaşılan akış kullanılamıyor

Akış açıklama metni politikasında, <SharedFlowBundle> öğesinde tanımlanan paylaşılan akış ortamda mevcut değilse bu hata meydana gelir.

Örneğin, Akış Açıklama Politikası'ndaki <SharedFlowBundle> öğesi SharedFlow_Sample adlı paylaşılan bir akış içeriyorsa ve bu paylaşılan akış ortamda yoksa hata oluşur.

Örnek Hata Mesajı

{
    "fault": {
        "faultstring": "Shared Flow SharedFlow_Sample Not Found",
        "detail": {
            "errorcode": "flow.SharedFlowNotFound"
        }
    }
}

Teşhis

  1. Mevcut olmayan paylaşılan akışı belirleyin. Bu bilgiyi hata yanıtının faultstring öğesinde bulabilirsiniz. Örneğin, aşağıdaki faultstring içinde, paylaşılan akış adı SharedFlow_Sample şeklindedir:

    "faultstring": "Shared Flow SharedFlow_Sample Not Found"

  2. Hatanın oluştuğu ilgili API Proxy'sinde tüm Akış Çağrı politikalarını inceleyin. <SharedFlowBundle> öğesinin yukarıdaki 1. adımda tanımlanan akış adıyla belirtildiği bir Akış Açıklama Metni politikası olup olmadığını kontrol edin.

    Örneğin, aşağıdaki politika <SharedFlowBundle> değerini, hata dizesindeki değerle eşleşen SharedFlow_Sample olarak belirtir.

    <FlowCallout async="false" continueOnError="false" enabled="true" name="Auth-Flow-Callout">
       <DisplayName>Auth Flow Callout</DisplayName>
       <SharedFlowBundle>SharedFlow_Sample</SharedFlowBundle>
    </FlowCallout>
    
  3. Edge kullanıcı arayüzünde, bu paylaşılan akışın API'ler > Paylaşılan Akışlar bölümünde bulunup bulunmadığını kontrol edin. Kod mevcut değilse hatanın nedeni budur. (Yeni Edge kullanıcı arayüzünde, Ortak Akışlar'ı Geliştir sekmesinde bulabilirsiniz.)

    Örneğin, aşağıdaki ekran görüntüsünde SharedFlow_Sample paylaşılan akışı mevcut değil.

    Bu paylaşılan akış mevcut olmadığı için şu hata kodunu alırsınız:

    flow.SharedFlowNotFound
    

Çözünürlük

Akış Açıklaması politikasındaki <SharedFlowBundle> öğesinde belirtilen paylaşılan akışın mevcut olduğundan ve API isteğinin yürütüldüğü belirli ortamda dağıtıldığından emin olun.

Sorunu gidermek için aşağıdaki yöntemlerden birini seçebilirsiniz:

  1. Aşağıda gösterildiği gibi SharedFlow_Sample adlı bir paylaşılan akış oluşturun ve aşağıda gösterildiği gibi test ortamına dağıtın:

  2. Akış Açıklama Metni politikasındaki test ortamında dağıtılan mevcut bir Paylaşılan Akış kullanın. Örneğin, Akış Açıklama Metni politikasında SharedFlow_demo belirtebilirsiniz.

    <FlowCallout async="false" continueOnError="false" enabled="true" name="Auth-Flow-Callout">
      <DisplayName>Auth Flow Callout</DisplayName>
      <SharedFlowBundle>SharedFlow_demo</SharedFlowBundle>
    </FlowCallout>
    

    Akış Çağrısı, test ortamına da dağıtıldığından, test ortamına bir API çağrısı yaparsanız artık hatayı görmezsiniz.

Neden: Paylaşılan akış dağıtılmadı

Akış Açıklama Metni Politikası'nın <SharedFlowBundle> öğesinde belirtilen paylaşılan akış dağıtılmazsa bu hata oluşur.

Örneğin, akış açıklama metni politikasındaki <SharedFlowBundle> öğesi, API isteğinin yapıldığı belirli bir ortamda dağıtılmayan SharedFlow_example adlı bir paylaşılan akış içeriyorsa hata meydana gelir.

Örnek Hata Mesajı

{
    "fault": {
        "faultstring": "Shared Flow Shared-Flow_example Not Found",
        "detail": {
            "errorcode": "flow.SharedFlowNotFound"
        }
    }
}

Teşhis

  1. Dağıtılmayan paylaşılan akışı belirleyin. Bu bilgiyi, hata yanıtının faultstring öğesinde bulabilirsiniz. Örneğin, aşağıdaki faultstring'te paylaşılan akış adı Shared-Flow_example'dur:

    "faultstring": "Shared Flow Shared-Flow_example Not Found"

  2. Edge kullanıcı arayüzünde bu paylaşılan akışın dağıtılıp dağıtılmadığını kontrol edin.

    Örneğin, aşağıdaki ekran görüntüsünde SharedFlow_example adlı paylaşılan akışın mevcut olduğunu ancak dağıtılmadığını fark edeceksiniz.

    Bu paylaşılan akış dağıtılmadığından şu hata kodunu alırsınız:

    flow.SharedFlowNotFound
    

Çözünürlük

Akış Açıklaması politikasındaki <SharedFlowBundle> öğesinde belirtilen paylaşılan akışın mevcut olduğundan ve API isteğinin yürütüldüğü belirli ortamda dağıtıldığından emin olun.

Yukarıdaki örneği düzeltmek için SharedFlow_example adlı ortak akışı test ortamına aşağıda gösterildiği gibi dağıtın:

Test ortamına API çağrısı yaparsanız akış açıklama metni test ortamına da dağıtıldığı için artık hatayı görmezsiniz.