นโยบายข้อความไฮไลต์สำหรับโฟลว์

คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่ เอกสารประกอบเกี่ยวกับ Apigee X.
ข้อมูล

ใช้นโยบาย Flowข้อความไฮไลต์ เพื่อเรียกโฟลว์ที่แชร์จากพร็อกซี API หรืออื่นๆ ขั้นตอนที่แชร์

ในขั้นตอนที่แชร์ คุณจะสร้างลำดับขั้นตอนที่สามารถใช้ซ้ำขณะเรียกใช้ได้จากหลายรายการ สถานที่ ขั้นตอนเหล่านี้จะใช้เป็นนโยบาย เช่นเดียวกับภายในพร็อกซี API นโยบาย Flowข้อความไฮไลต์ เป็นวิธีเรียกใช้โฟลว์ที่แชร์จากพร็อกซี API และขั้นตอนที่แชร์อื่นๆ โดยทำงานเหมือนการเรียกใช้ฟังก์ชันในภาษาโปรแกรมแบบดั้งเดิม

  • ตัวอย่างเช่น สมมติว่าคุณได้สร้างขั้นตอนที่แชร์ไว้ด้วยฟีเจอร์ด้านความปลอดภัย เช่น การยืนยันคีย์ API, การตรวจสอบโทเค็น OAuth และการป้องกันนิพจน์ทั่วไป ขั้นตอนที่แชร์นี้ เป็นกฎเกณฑ์สำหรับวิธีตรวจสอบคำขอขาเข้า เมื่อใช้นโยบาย Flowข้อความไฮไลต์ คุณจะเรียกใช้โฟลว์ที่แชร์จากพร็อกซี API หลายรายการได้
  • คุณสามารถเรียกใช้ขั้นตอนที่แชร์จากอีกขั้นตอนหนึ่งได้โดยใช้นโยบาย Flowข้อความไฮไลต์ จากภายใน

ตัวอย่าง

ยืนยันคีย์ API ในขั้นตอนที่แชร์

ในตัวอย่างนี้ เราจะใช้ขั้นตอนที่แชร์เพื่อทำงานเกี่ยวกับความปลอดภัยทั่วไป ที่นี่ ขั้นตอนที่แชร์จะตรวจสอบคีย์ API พร็อกซี API และขั้นตอนอื่นๆ ที่แชร์จะใช้ Flowข้อความไฮไลต์ ได้ นโยบายในการเรียกเข้าสู่ขั้นตอนที่แชร์นี้

คำจำกัดความของโฟลว์ที่แชร์ต่อไปนี้มีนโยบาย Verify-API-Key ที่ดำเนินการ เมื่อมีการเรียกใช้โฟลว์ที่แชร์จากนโยบาย FlowCall ในพร็อกซี API

<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes&qu>ot;?
<Shar>edFlow na<me=&>quot;default&q<uot;
>    S<tep
 > <      NameV>erify-API-Key/Name
    /Step
/SharedFlow

นโยบาย VerifyAPIKey ภายในขั้นตอนที่แชร์ก่อนหน้านี้จะดึงค่าคีย์และ เพื่อยืนยัน

<VerifyAPIKey async="false" continueOnError="false" enabled="tr>ue&qu<ot; name=&q>uot;Verify-API<-Key"
 >   Di<splayNameVerify API Key/DisplayName
   > <APIKey ref=&q>uot;request.queryparam.apikey"/
/VerifyAPIKey

นโยบาย Flowข้อความไฮไลต์ ต่อไปนี้ซึ่งใช้ในพร็อกซี API เรียกใช้โฟลว์ที่แชร์ก่อนหน้าไปยัง ยืนยันคีย์ API กลุ่มขั้นตอนที่แชร์ของ verify-apikey-shared (ไม่ได้แสดงที่นี่) กำหนดค่าขั้นตอนที่แชร์ในลักษณะที่แพ็กเกจ APIProxy กำหนดค่าพร็อกซี

<FlowCallout async="false" continueOnError="false" enabled="true&>quot;< name=">;Auth-Flow-Callou<t"
    >Displ<ayNameAuth Flow >Callout/DisplayName
<    SharedFlowBun>d<leverify-api>key-shared/SharedFlowBundle
/FlowCallout

ส่งต่อพารามิเตอร์ไปยังขั้นตอนที่แชร์

ตัวอย่างนี้แสดงวิธีส่งพารามิเตอร์จากนโยบาย Flowข้อความไฮไลต์ ไปยัง ขั้นตอนที่แชร์ ในตัวอย่างนี้ นโยบาย Flowข้อความไฮไลต์ เรียกไปยังขั้นตอนที่แชร์ซึ่งออกแบบมาเพื่อดำเนินการโดยทั่วไป ของฟังก์ชันการจัดการสตริง ขั้นตอนที่แชร์มี JavaScript ที่เชื่อมโยงอินพุตเข้าด้วยกัน ไม่ว่าอินพุตจะเป็นตัวพิมพ์เล็กหรือตัวพิมพ์ใหญ่ หรือทั้งสองอย่างก็ได้ นโยบาย Flowข้อความไฮไลต์ จะกำหนดพารามิเตอร์ที่ระบุ อินพุตสตริง เอาต์พุต และสิ่งที่ต้องทำกับอินพุต

  1. นโยบาย Flowข้อความไฮไลต์ ของ String-Handler เรียกใช้ขั้นตอนที่แชร์ พารามิเตอร์ที่ส่งผ่านที่ระบุตัวแปรเพื่อจัดเก็บเอาต์พุตของขั้นตอนที่แชร์ และขั้นตอนใดที่แชร์ และอินพุตที่จะใช้ (ในที่นี้คือสัญพจน์ของสตริง แต่ก็อาจเป็น ตัวแปรโฟลว์) องค์ประกอบ Parameter ระบุชื่อและค่าของตัวแปร เพื่อสร้างรันไทม์ ขั้นตอนที่แชร์จะดึงข้อมูลตัวแปรเหล่านี้เพื่อใช้ในโค้ดของตัวเองได้

    <?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
    FlowCallout async="false" continueOnError=&quo>t;f<alse" >enabled="<true" n>ame<="Str>ing-H<andler"
      Display>NameString Han<dler/Displ>ayNam<e
      Parameters
        Paramete>r name="input"<;Gladys Kr>avitz</Parameter
        Parameter name=&>quot;operations"<concatenat>e t<olowercase/>Par<ameter
        Param>eter name=&qu<ot;outputVariable>&<quot;string.>handler.output/Parameter
      /Parameters
      SharedFlowBundleStringHandler/SharedFlowBundle
    /FlowCallout
  2. ขั้นตอนที่แชร์ของ default ต่อไปนี้มีนโยบาย JavaScript SharedStringFunctions ที่จะดำเนินการเมื่อมีการเรียกใช้โฟลว์ที่แชร์จากนโยบาย Flowcallout

    <?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes&qu>ot;<?
    Sh>aredF<low >name="default&qu<ot;
     > St<ep
      > < NameShared>StringFunctions/Name
      /Step
    /SharedFlow
  3. ในขั้นตอนที่แชร์ นโยบาย JavaScript ของ SharedStringFunctions ต่อไปนี้ ระบุไฟล์ JavaScript SharedStringFunctions.js กับโค้ดที่จะดำเนินการ

    <?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
    Javascript async="false" continueOnError="false" enabled=&>quo<t;true">; timeLimit="200<" name=>&<quot;Shared>Str<ingFunction>s"
      DisplayNameSharedStr<ingFunctions>/<DisplayName> Properties/
      ResourceURLjsc://SharedStringFunctions.js/ResourceURL
    /Javascript
  4. JavaScript ที่ SharedStringFunctions.js ต่อไปนี้ทำงานจาก นโยบาย JavaScript SharedStringFunctions รายการ สคริปต์นี้ดึงค่าจาก ตัวแปรที่สร้างจากองค์ประกอบ Parameter ของนโยบายโฟลว์ข้อความไฮไลต์

    // 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. การดำเนินการจะย้อนกลับจากนโยบาย JavaScript ไปยังขั้นตอนที่แชร์ จากนั้นไปยัง นโยบาย Flowข้อความไฮไลต์ ในพร็อกซี API ต้นทาง

การอ้างอิงองค์ประกอบ

ต่อไปนี้คือองค์ประกอบและแอตทริบิวต์ที่คุณสามารถกำหนดค่าในนโยบายนี้

<FlowCallout async="false" continueOnError="false" enabled="tr>ue&qu<ot; name=&q>uot;Flow-Callout-1"<;
    Displa>yName<Custom label use>d in UI/DisplayName
    Share<dFlowBundletheref>e<rencedshared>flowbundle/SharedFlowBundle
/FlowCallout

&lt;FlowCallout&gt; แอตทริบิวต์

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

ตารางต่อไปนี้อธิบายแอตทริบิวต์ทั่วไปในองค์ประกอบระดับบนสุดของนโยบายทั้งหมด

แอตทริบิวต์ คำอธิบาย ค่าเริ่มต้น การมีบุคคลอยู่
name

ชื่อภายในของนโยบาย ค่าของแอตทริบิวต์ name สามารถ ประกอบด้วยตัวอักษร ตัวเลข การเว้นวรรค ขีดกลางสั้น ขีดล่าง และจุด ค่านี้ไม่สามารถ เกิน 255 อักขระ

(ไม่บังคับ) ใช้องค์ประกอบ <DisplayName> เพื่อติดป้ายกำกับนโยบายใน เครื่องมือแก้ไขพร็อกซี UI การจัดการด้วยชื่อที่เป็นภาษาธรรมชาติต่างกัน

ไม่มี ต้องระบุ
continueOnError

ตั้งค่าเป็น false เพื่อแสดงผลข้อผิดพลาดเมื่อนโยบายล้มเหลว เป็นเรื่องปกติ พฤติกรรมสำหรับนโยบายส่วนใหญ่

ตั้งค่าเป็น true เพื่อให้ดำเนินการตามขั้นตอนได้อย่างต่อเนื่องแม้จะมีนโยบายแล้วก็ตาม ล้มเหลว

เท็จ ไม่บังคับ
enabled

ตั้งค่าเป็น true เพื่อบังคับใช้นโยบาย

ตั้งค่าเป็น false เพื่อปิดนโยบาย นโยบายจะไม่ บังคับใช้ แม้ว่าจะยังคงแนบกับขั้นตอน

จริง ไม่บังคับ
async

แอตทริบิวต์นี้เลิกใช้งานแล้ว

เท็จ เลิกใช้

&lt;DisplayName&gt; องค์ประกอบ

ใช้เพิ่มเติมจากแอตทริบิวต์ name เพื่อติดป้ายกำกับนโยบายใน เครื่องมือแก้ไขพร็อกซี UI การจัดการด้วยชื่อที่เป็นภาษาธรรมชาติต่างกัน

<DisplayName>Policy Display Name</DisplayName>
ค่าเริ่มต้น

ไม่มี

หากไม่ใส่องค์ประกอบนี้ ค่าของแอตทริบิวต์ name ของนโยบายจะเป็น

การมีบุคคลอยู่ ไม่บังคับ
ประเภท สตริง

&lt;SharedFlowBundle&gt; องค์ประกอบ

ระบุชื่อของโฟลว์ที่แชร์ที่จะเรียกใช้ ค่าขององค์ประกอบนี้ควรเหมือนกับ ของแอตทริบิวต์ชื่อองค์ประกอบ SharedFlowBundle เป้าหมาย

<SharedFlowBundle/>

ตัวอย่างที่ง่ายที่สุดคือคุณตั้งชื่อขั้นตอนที่แชร์ว่าเป็นค่าของ กล่าวคือ ค่าขององค์ประกอบนี้ต้องเหมือนกับ name ของขั้นตอนที่แชร์

<SharedFlowBundle>Shared-Flow-Name</SharedFlowBundle>
 
ค่าเริ่มต้น ไม่มี
การตรวจหาบุคคล

ต้องระบุ

ประเภท ไม่มี

Attributes

ไม่มี

&lt;Parameter&gt; องค์ประกอบ

ระบุพารามิเตอร์และค่า (หรือแหล่งที่มาของค่า) ที่จะส่งผ่านเป็นตัวแปรไปยังขั้นตอนที่ใช้ร่วมกันที่เรียกใช้โดยพารามิเตอร์นี้

เมื่อใช้พารามิเตอร์ คุณจะสามารถระบุค่า (หรือตัวแปรที่มีค่า) ที่ควร ที่ส่งไปยังขั้นตอนที่แชร์ซึ่งนโยบายเรียกใช้ แนวคิดนี้คล้ายกับการระบุ ในการเรียกฟังก์ชัน เช่นเดียวกับพารามิเตอร์ฟังก์ชัน ค่าของพารามิเตอร์ Flowข้อความไฮไลต์ สามารถ แตกต่างกันไปตามบริบทของการเรียกใช้โฟลว์ที่แชร์

พารามิเตอร์ Flowข้อความไฮไลต์ จะปรากฏระหว่างการดำเนินการของโฟลว์ที่แชร์เท่านั้น

ไวยากรณ์

คุณสามารถใช้องค์ประกอบนี้กับรูปแบบไวยากรณ์อย่างใดอย่างหนึ่งต่อไปนี้ โปรดทราบว่าตำแหน่ง ใช้ค่าลิเทอรัล รูปแบบของค่าที่คุณระบุจะขึ้นอยู่กับโค้ดที่ ถึงขนาดนั้น

<!- A literal value in an attribute. --/>
<Parameter name="parameter-name" value='para>m<eter-value' /
!- A reference to a variable in> <an attribute. --/
Parameter name="parameter-name" >r<ef='source-variable-name' /
!- A liter>a<l value in the element content.> --/
Parameter <name=">;<parameter-name"parameter-value/Parameter
!- An referen>c<e to an attribute in the elemen>t content. --/
Paramet<er name=&q>uot;parameter-name"{source-variable-name}/Parameter

ตัวอย่าง

พารามิเตอร์การส่งของนโยบาย Flowcallout ของ String-Handler นี้ซึ่งระบุตำแหน่ง เพื่อจัดเก็บเอาต์พุตของขั้นตอนที่แชร์และอินพุตที่จะใช้ องค์ประกอบ Parameter ระบุชื่อและค่าของตัวแปรเพื่อสร้างรันไทม์ ขั้นตอนที่แชร์จะเรียกข้อมูลได้ ตัวแปรเหล่านี้เพื่อใช้ในโค้ดของตัวเอง

<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
FlowCallout async="false" continueOnError=&quo>t;f<alse" >enabled="<true" n>ame<="Str>ing-H<andler"
  Display>NameString Han<dler/Displ>ayNam<e
  Parameters
    Parameter na>me="input"G<ladys Krav>itz</Parameter
>   < Parameter name=>"outputV<ariable"stri>n<g.handler.ou>tput/Parameter
  /Parameters
  SharedFlowBundleStringHandler/SharedFlowBundle
/FlowCallout
ค่าเริ่มต้น ไม่มี
การตรวจหาบุคคล

ต้องระบุ

ประเภท ไม่มี

Attributes

แอตทริบิวต์ คำอธิบาย ค่าเริ่มต้น การมีบุคคลอยู่ ประเภท
ชื่อ ชื่อของตัวแปรรันไทม์ที่จะสร้างด้วยพารามิเตอร์นี้ ไม่มี ต้องระบุ สตริง
อ้างอิง

ตัวแปรที่ มีค่าที่จะใช้ขณะรันไทม์ ละเว้นแอตทริบิวต์นี้ในกรณีต่อไปนี้ ระบุค่าลิเทอรัลที่จะใช้

ไม่มี ไม่บังคับ สตริง
value ค่าที่จะใช้ในตัวแปรรันไทม์ที่สร้างด้วยพารามิเตอร์นี้ ละเว้นแอตทริบิวต์นี้หาก คุณระบุชื่อของตัวแปรที่ควรเป็นแหล่งที่มาของค่า ไม่มี ไม่บังคับ สตริง

&lt;Parameters&gt; องค์ประกอบ

ระบุชุดขององค์ประกอบ &lt;Parameter&gt; ที่จะส่งเป็นตัวแปรไปยังโฟลว์ที่แชร์ซึ่งเรียกใช้โดยพารามิเตอร์นี้

ไวยากรณ์

<Parameters>
  <Parameter name="parameter-name" value='para>m<eter-value&>#39; /
/Parameters
ค่าเริ่มต้น ไม่มี
การตรวจหาบุคคล

ไม่บังคับ

ประเภท ไม่มี

Attributes

ไม่มี

สคีมา

ตัวแปรโฟลว์

ตัวแปรโฟลว์จะเปิดใช้ลักษณะการทำงานแบบไดนามิกของนโยบายและโฟลว์ขณะรันไทม์ โดยอิงตาม HTTP ส่วนหัว เนื้อหาข้อความ หรือบริบทโฟลว์ ดูข้อมูลเพิ่มเติมเกี่ยวกับตัวแปรโฟลว์ได้ที่ ข้อมูลอ้างอิงตัวแปร

ตัวแปร คำอธิบาย

apigee.edge.sharedflow.name

ขอบเขต: ระหว่างการดำเนินการของขั้นตอนที่แชร์
ประเภท: สตริง
สิทธิ์: อ่าน

ค่าของแอตทริบิวต์ชื่อของขั้นตอนที่แชร์

apigee.edge.flowhook.name

ขอบเขต: ระหว่างดำเนินการตามโฟลว์ที่แชร์ที่แนบกับโฟลว์ ฮุก
ประเภท: สตริง
สิทธิ์: อ่าน

ชื่อของฮุกโฟลว์

ข้อมูลอ้างอิงข้อผิดพลาด

ส่วนนี้อธิบายโค้ดข้อผิดพลาดและข้อความแสดงข้อผิดพลาดที่แสดงผลและตัวแปรข้อผิดพลาดที่ Edge กำหนดเมื่อนโยบายนี้ทริกเกอร์ข้อผิดพลาด ข้อมูลนี้เป็นสิ่งสำคัญที่ต้องทราบหากคุณกำลังกำหนดกฎข้อผิดพลาดเพื่อจัดการกับข้อผิดพลาด ดูข้อมูลเพิ่มเติมได้ที่สิ่งที่คุณต้องทราบเกี่ยวกับข้อผิดพลาดของนโยบายและการจัดการข้อผิดพลาด

ข้อผิดพลาดเกี่ยวกับรันไทม์

ข้อผิดพลาดเหล่านี้อาจเกิดขึ้นเมื่อนโยบายทำงาน

รหัสข้อผิดพลาด สถานะ HTTP สาเหตุ แก้ไข
flow.SharedFlowNotFound 500 ไม่มีโฟลว์ที่แชร์ หรือมีโฟลว์ที่แชร์อยู่แต่ไม่ได้ใช้งาน

ข้อผิดพลาดในการทำให้ใช้งานได้

ไม่มีข้อมูล

หัวข้อที่เกี่ยวข้อง