Akış Çağrısı politikası

Apigee Edge belgelerini görüntülüyorsunuz.
. Git: Apigee X belgeleri.
bilgi

Bir API proxy'sinden veya başka bir kaynaktan paylaşılan bir akışa çağrıda bulunmak için Flow uzantısı politikasını kullanın Paylaşılan akış.

Paylaşılan akışta, çalışma zamanında birden fazla cihazdan yeniden kullanabileceğiniz bir dizi adım oluşturursunuz. yer. Bu adımlar, bir API proxy'si içinde olduğu gibi politika olarak uygulanır. Akış Açıklamaları Politikası API proxy'lerinden ve diğer paylaşılan akışlardan paylaşılan akışı çağırmanıza olanak tanır. Geleneksel programlama dilindeki bir işlev çağrısı gibi çalışır.

  • Örneğin, giriş ve kontrol sorunları gibi güvenlik özellikleri ile API anahtarı doğrulaması, OAuth jeton doğrulaması ve normal ifade koruması. Bu paylaşılan akış gelen istekleri kontrol etmek için kullandığınız yöntemi temsil eder. Akış Açıklamaları politikalarını kullanarak bu paylaşılan akışı birden çok API proxy'sinden çağırabilirsiniz.
  • Bir Akış Açıklama Metni Politikası'nı uygulayarak, paylaşılan bir akışı diğerinden akışı sağlar.
ziyaret edin.

Örnekler

Paylaşılan akışta API anahtarını doğrulayın

Bu örnekte, güvenlikle ilgili yaygın görevleri gerçekleştirmek için paylaşılan bir akış kullanılmıştır. Burada Paylaşılan akış bir API anahtarını doğrular. API proxy'leri ve diğer paylaşılan akışlar, FlowDraft'ı kullanabilir akışa çağrı yapma politikasını uygulayın.

Aşağıdaki paylaşılan akış tanımı, bir Verify-API-Key politikası yürüten Paylaşılan akış, API proxy'sindeki Flow yayınlayın.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<SharedFlow name="default">
    <Step>
        <Name>Verify-API-Key</Name>
    </Step>
</SharedFlow>

Önceki paylaşılan akıştaki VerifyAPIKey politikası, anahtar/değer çiftini alır ve bu bilgileri doğrular.

<VerifyAPIKey async="false" continueOnError="false" enabled="true" name="Verify-API-Key">
    <DisplayName>Verify API Key</DisplayName>
    <APIKey ref="request.queryparam.apikey"/>
</VerifyAPIKey>

API proxy'sinde kullanılan aşağıdaki Flow callout politikası, önceki paylaşılan akışı API anahtarını doğrulayın. verify-apikey-shared paylaşılan akış paketi (burada gösterilmez) Paylaşılan akışı, APIProxy paketinin proxy yapılandırdığı şekilde yapılandırır.

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

Parametreleri paylaşılan bir akışa iletme

Bu örnekte, bir FlowDraft politikasından parametrelerin Paylaşılan akış. Burada, bir Flow uzantısı (akış) politikası, ortak çalışma gerçekleştirmek için tasarlanmış paylaşılan bir akışı dize işleme işlevlerine göz atın. Paylaşılan akış, girişini birleştiren JavaScript'i içerir. küçük harfli hale getirir veya her ikisini birden yapabilirsiniz. odaklanmanız gereken parametreleri dize girişini, çıkışını ve girişle ne yapılacağını gösterir.

  1. String-Handler Akış Açıklama Metni Politikası, paylaşılan akışı paylaşılan akışın çıkışını depolayacak değişkeni, hangi paylaşılan akışın işlem ve hangi girişin kullanılacağı akış değişkeni) kaldırın. Parameter öğeleri, değişkenlerin adlarını ve değerlerini belirtir biraz zorlandık. Paylaşılan akış, bu değişkenleri kendi kodunda kullanmak üzere alabilir.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <FlowCallout async="false" continueOnError="false" enabled="true" name="String-Handler">
      <DisplayName>String Handler</DisplayName>
      <Parameters>
        <Parameter name="input">Gladys Kravitz</Parameter>
        <Parameter name="operations">concatenate tolowercase</Parameter>
        <Parameter name="outputVariable">string.handler.output</Parameter>
      </Parameters>
      <SharedFlowBundle>StringHandler</SharedFlowBundle>
    </FlowCallout>
    
  2. Aşağıdaki default paylaşılan akışı, paylaşılan akış bir Flow gelmesi politikasından çağrıldığında yürütülecek bir SharedStringFunctions JavaScript politikası içermektedir.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <SharedFlow name="default">
      <Step>
        <Name>SharedStringFunctions</Name>
      </Step>
    </SharedFlow>
  3. Paylaşılan akışta, aşağıdaki SharedStringFunctions JavaScript politikası yürütülecek kodu içeren SharedStringFunctions.js JavaScript dosyasını belirtir.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Javascript async="false" continueOnError="false" enabled="true" timeLimit="200" name="SharedStringFunctions">
      <DisplayName>SharedStringFunctions</DisplayName> <Properties/>
      <ResourceURL>jsc://SharedStringFunctions.js</ResourceURL>
    </Javascript>
  4. Aşağıdaki JavaScript, SharedStringFunctions.js, SharedStringFunctions JavaScript politikası. Bu komut dosyası, şuradan değer alır: Akış Açıklamaları politikası Parameter öğelerinden oluşturulan değişkenler.

    // Input value from the calling API proxy.
    var handledString = context.getVariable("input");
    // Variable to use for output from this script.
    var outputVariable = context.getVariable("outputVariable");
    // A space-separated list of things to do to the input string.
    // Convert to lower case to handle unintentional capitals in configuration.
    var operation = context.getVariable("operations").toLowerCase();
    
    // If "lowercase" was given as an operation, convert the input to lowercase.
    if (operation.includes("tolowercase")) {
        handledString = handledString.toLowerCase();
    }
    
    // If "concatenate" was given as an operation, concatenate the input.
    if (operation.includes("concatenate")) {
        handledString = handledString.replace(/\s+/g, '');
    }
    // Assign the resulting string to the output variable specified by
    // the calling API proxy.
    context.setVariable(outputVariable, handledString);
  5. Yürütme işlemi JavaScript politikasından paylaşılan akışa, ardından da Kaynak API proxy'sindeki FlowÇağrı politikası.

Öğe referansı

Bu politikada yapılandırabileceğiniz öğeler ve özellikler aşağıda verilmiştir:

<FlowCallout async="false" continueOnError="false" enabled="true" name="Flow-Callout-1">
    <DisplayName>Custom label used in UI</DisplayName>
    <SharedFlowBundle>thereferencedsharedflowbundle</SharedFlowBundle>
</FlowCallout>

&lt;FlowCallout&gt; özellikler

<FlowCallout async="false" continueOnError="false" enabled="true" name="Flow-Callout-1">

Aşağıdaki tabloda tüm politika üst öğelerinde ortak olan özellikler açıklanmaktadır:

Özellik Açıklama Varsayılan Varlık
name

Politikanın dahili adı. name özelliğinin değeri Harf, sayı, boşluk, kısa çizgi, alt çizgi ve nokta içermelidir. Bu değer, 255 karakteri aşmalıdır.

İsteğe bağlı olarak, politikayı<DisplayName> yönetim arayüzü proxy düzenleyicisinde farklı bir doğal dil adı kullanabilir.

Yok Zorunlu
continueOnError

Bir politika başarısız olduğunda hata döndürmesi için false olarak ayarlayın. Bu beklenen bir durumdur çoğu politika için geçerli olur.

Akış yürütmenin bir politikadan sonra bile devam etmesi için true olarak ayarlayın başarısız olur.

false İsteğe bağlı
enabled

Politikayı uygulamak için true olarak ayarlayın.

Politikayı devre dışı bırakmak için false değerine ayarlayın. Bu politika, bir akışa bağlı kalsa bile uygulanır.

true İsteğe bağlı
async

Bu özelliğin desteği sonlandırıldı.

false Kullanımdan kaldırıldı

&lt;DisplayName&gt; öğe

Politikayı name özelliğine ek olarak farklı bir doğal dil adına sahip yönetim arayüzü proxy düzenleyicisi.

<DisplayName>Policy Display Name</DisplayName>
Varsayılan

Yok

Bu öğeyi çıkarırsanız politikanın name özelliğinin değeri: kullanılır.

Varlık İsteğe bağlı
Tür Dize

&lt;SharedFlowBundle&gt; öğe

Çağrı yapılacak paylaşılan akışın adını belirtir. Bu öğenin değeri target SharedFlowBundle öğesinin ad özelliğinin değeri.

<SharedFlowBundle/>

En basit örnekte, bu akış için değer olarak çağrılan paylaşılan akışın adını öğesine dokunun. Yani bu öğenin değeri, paylaşılan akışın name değeriyle aynı olmalıdır özellik değeri.

<SharedFlowBundle>Shared-Flow-Name</SharedFlowBundle>
 
Varsayılan Yok
Bulunma

Zorunlu.

Tür Yok

Özellikler

Yok.

&lt;Parameter&gt; öğe

Bu komut tarafından çağrılan paylaşılan akışa değişken olarak aktarılacak bir parametreyi ve değeri (veya değer kaynağını) belirtir politikası.

Bir parametre kullanarak politika tarafından çağrılan paylaşılan akışa iletilir. Bu, kavramsal olarak parametresinin değeri. Bir fonksiyon parametresinde olduğu gibi, FlowReference parametresinin değeri, Paylaşılan akış çağrısının bağlamına göre değişir.

Akış Çağrısı parametreleri yalnızca paylaşılan akışın yürütülmesi sırasında görünür.

Söz dizimi

Bu öğeyi aşağıdaki söz dizimi formlarından herhangi biriyle kullanabilirsiniz. Lütfen değişmez değer kullanırsanız belirttiğiniz değerin biçimi, bu tükettiğini varsayalım.

<!- A literal value in an attribute. --/>
<Parameter name="parameter-name" value='parameter-value' />
<!- A reference to a variable in an attribute. --/>
<Parameter name="parameter-name" ref='source-variable-name' />
<!- A literal value in the element content. --/>
<Parameter name="parameter-name">parameter-value</Parameter>
<!- An reference to an attribute in the element content. --/>
<Parameter name="parameter-name">{source-variable-name}</Parameter>

Örnek

Bu String-Handler FlowDraft politikası, nerede (nerede) olduğunu belirten parametreleri iletir. çıkış verilerini depolayacağını ve hangi girişin kullanılacağını kontrol edeceğini ifade eder. Parameter öğeleri çalışma zamanı oluşturulacak değişkenlerin adlarını ve değerlerini belirtin. Paylaşılan akış, bu değişkenlerin kendi kodunda kullanılmasını sağlar.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<FlowCallout async="false" continueOnError="false" enabled="true" name="String-Handler">
  <DisplayName>String Handler</DisplayName>
  <Parameters>
    <Parameter name="input">Gladys Kravitz</Parameter>
    <Parameter name="outputVariable">string.handler.output</Parameter>
  </Parameters>
  <SharedFlowBundle>StringHandler</SharedFlowBundle>
</FlowCallout>
Varsayılan Yok
Bulunma

Zorunlu.

Tür Yok

Özellikler

Özellik Açıklama Varsayılan Varlık Tür
ad Bu parametreyle oluşturulacak çalışma zamanı değişkeninin adı. Yok. Zorunlu. Dize
referans

Değişken, çalışma zamanında kullanılacak değeri içerir. Aşağıdaki durumlarda bu özelliği dahil etmeyin: kullanılacak sabit bir değer belirtmek.

Yok. İsteğe bağlı. Dize
value Bu parametreyle oluşturulan çalışma zamanı değişkeninde kullanılacak değer. Aşağıdaki durumlarda bu özelliği dahil etmeyin değer kaynağı olması gereken bir değişkenin adını belirtiyorsunuz. Yok. İsteğe bağlı. Dize

&lt;Parameters&gt; öğe

Bu parametre tarafından çağrılan paylaşılan akışa değişken olarak aktarılacak &lt;Parameter&gt; öğe grubunu belirtir. politikası.

Söz dizimi

<Parameters>
  <Parameter name="parameter-name" value='parameter-value' />
</Parameters>
Varsayılan Yok
Bulunma

İsteğe bağlı.

Tür Yok

Özellikler

Yok.

Şemalar

Akış değişkenleri

Akış değişkenleri, politikaların ve akışların çalışma zamanında HTTP'ye göre dinamik davranışını etkinleştirir veya akış bağlamını kontrol edebilirsiniz. Akış değişkenleri hakkında daha fazla bilgi için Değişkenler referansı.

Değişken Açıklama

apigee.edge.sharedflow.name

Kapsam: Paylaşılan akışın yürütülmesi sırasında
Tür: Dize
İzin: Okuma

Paylaşılan akışın ad özelliğinin değeri.

apigee.edge.flowhook.name

Kapsam: Akışa bağlı paylaşılan akışın yürütülmesi sırasında kanca.
. Tür: Dize
İzin: Okundu

Akış kancasının adı.

Hata referansı

Bu bölümde, bu politika bir hatayı tetiklediğinde Edge tarafından ayarlanan hata kodları ve hata mesajları ile döndürülen hata değişkenleri açıklanmaktadır. Hataları ele almak için hata kuralları geliştiriyorsanız bu bilgiye sahip olmanız önemlidir. Daha fazla bilgi için Politika hataları hakkında bilmeniz gerekenler ve Hataları işleme bölümlerine bakın.

Çalışma zamanı hataları

Politika yürütüldüğünde bu hatalar ortaya çıkabilir.

Hata kodu HTTP durumu Neden Düzelt
flow.SharedFlowNotFound 500 Paylaşılan akış mevcut değil veya paylaşılan akış mevcut ancak dağıtılmamış.

Dağıtım hataları

Yok

İlgili konular