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

Apigee Edge belgelerini görüntülüyorsunuz.
Git: Apigee X belgeleri.
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ılmadı.

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

Akış Açıklama Metni Politikası'nda, <SharedFlowBundle> öğesi içinde tanımlanan paylaşılan akış ortamda yoksa bu hata oluşur.

Ö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 APIs > Paylaşılan Akışlar. Kod mevcut değilse hatanın nedeni budur. (Yeni Kenar kullanıcı arayüzünde, Paylaşılan Akışları Geliştirme sekmesinin altında bulabileceğinizi unutmayın.)

    Ö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ığından hata kodunu alırsınız:

    flow.SharedFlowNotFound
    

Çözünürlük

Akış Çağrı politikasındaki <SharedFlowBundle> öğesinde belirtilen paylaşılan akışın, API isteğinin yürütüldüğü belirli ortamda bulunduğundan ve 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 adında paylaşılan bir akış oluşturun ve bu akışı aşağıda gösterildiği gibi test ortamına dağıtın:

  2. Akış açıklama metni politikasında test ortamına dağıtılmış 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>
    

    Test ortamına bir API çağrısı yaparsanız hatası oluşur. Çünkü Akış Çağrısı test ortamına da dağıtılmıştır.

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 Politikası'ndaki <SharedFlowBundle> öğesi, API isteğinin yapıldığı belirli ortamda dağıtılmayan SharedFlow_example adlı paylaşılan bir akış içeriyorsa hata oluşur.

Ö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ışı tanımlayın. Bu bilgiyi hata yanıtının faultstring öğesinde bulabilirsiniz. Örneğin, aşağıdaki faultstring içinde, paylaşılan akış adı Shared-Flow_example şeklindedir:

    "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ğrı politikasındaki <SharedFlowBundle> öğesinde belirtilen paylaşılan akışın, API isteğinin yürütüldüğü belirli ortamda bulunduğundan ve dağıtıldığından emin olun.

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

Test ortamına bir API çağrısı yaparsanız hatası oluşur. Çünkü Akış Çağrısı test ortamına da dağıtılmıştır.