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.
Ö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.
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>
Aşağıdaki
default
paylaşılan akışı, paylaşılan akış bir Flow gelmesi politikasından çağrıldığında yürütülecek birSharedStringFunctions
JavaScript politikası içermektedir.<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <SharedFlow name="default"> <Step> <Name>SharedStringFunctions</Name> </Step> </SharedFlow>
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>
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);
- 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>
<FlowCallout> ö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ı. İsteğe bağlı olarak, politikayı |
Yok | Zorunlu |
continueOnError |
Bir politika başarısız olduğunda hata döndürmesi için Akış yürütmenin bir politikadan sonra bile devam etmesi için |
false | İsteğe bağlı |
enabled |
Politikayı uygulamak için Politikayı devre dışı bırakmak için |
true | İsteğe bağlı |
async |
Bu özelliğin desteği sonlandırıldı. |
false | Kullanımdan kaldırıldı |
<DisplayName> öğ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 |
---|---|
Varlık | İsteğe bağlı |
Tür | Dize |
<SharedFlowBundle> öğ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.
<Parameter> öğ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 |
<Parameters> öğe
Bu parametre tarafından çağrılan paylaşılan akışa değişken olarak aktarılacak <Parameter> öğ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 |
---|---|
|
Kapsam: Paylaşılan akışın yürütülmesi sırasında Paylaşılan akışın ad özelliğinin değeri. |
|
Kapsam: Akışa bağlı paylaşılan akışın yürütülmesi sırasında
kanca. 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ış. | build |
Dağıtım hataları
Yok
İlgili konular
- Paylaşılan akışlar oluşturma: Yeniden kullanılabilir paylaşılan akışlar
- Paylaşılan akışları birden fazla proxy'de yürütme: Akış kancası kullanarak paylaşılan akış ekleme