การแนบนโยบายกับโฟลว์ ProxyEndpoint หรือ TargetEndpoint

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

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

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

รูปแบบของการแนบนโยบายมีดังนี้

<Step>
    <Name>{policy_name}</Name>
</Step>

เช่น

<Step>
    <Name>QuotaPolicy</Name>
</Step>

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

คุณสามารถแนบนโยบายกับโฟลว์คำขอหรือการตอบกลับ โดยโฟลว์คำขอและการตอบกลับจะแบ่งย่อยออกเป็น PreFlow และ PostFlow

ตัวอย่างต่อไปนี้แสดงการกำหนดค่า ProxyEndpoint ขั้นต่ำโดยไม่มีการแนบนโยบาย ซึ่งจะกำหนด HTTPProxyConnection (ขาเข้า) และ RouteRule เท่านั้น

<ProxyEndpoint name="default">
    <HTTPProxyConnection>
        <BasePath>/weather</BasePath>
        <VirtualHost>default</VirtualHost>
    </HTTPProxyConnection>
    <RouteRule name="default">
        <TargetEndpoint>default</TargetEndpoint>
    </RouteRule>
</ProxyEndpoint>

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

หากต้องการบังคับใช้การกำหนดค่านี้ ให้แนบขั้นตอนการประมวลผลกับ PreFlow คำขอ ดังนี้

<ProxyEndpoint name="default">
  <PreFlow>
    <Request>
      <Step><Name>QuotaPolicy</Name></Step>
    </Request>
  </PreFlow>
  <HTTPProxyConnection> 
    <BasePath>/weather</BasePath> 
    <VirtualHost>default</VirtualHost> 
  </HTTPProxyConnection> 
  <RouteRule name="default"> 
    <TargetEndpoint>default</TargetEndpoint> 
  </RouteRule> 
</ProxyEndpoint>

ในบางครั้ง คุณอาจต้องการให้นโยบายทำงานหลังจากการประมวลผลเริ่มต้นอื่นๆ ใน ProxyEndpoint เช่น คุณต้องการตรวจสอบโควต้าใน PreFlow จากนั้นทำการประมวลผลอีกชุดหนึ่งหลังจากตรวจสอบโควต้าแล้ว เช่น แปลงคำขอจาก JSON เป็น XML หากต้องการทำเช่นนั้น ให้แนบนโยบายกับเส้นทางคำขอ PostFlow ตัวอย่างต่อไปนี้แสดงการแนบคำขอ PostFlow นโยบายนี้จะทำงานกับข้อความคำขอหลังจากนโยบายทั้งหมดใน PreFlow (และโฟลว์แบบมีเงื่อนไข) ทำงานแล้ว

<PostFlow>
  <Request>
    <Step><Name>JSONtoXMLPolicy</Name></Step>
  </Request>
</PostFlow>

ตัวอย่างต่อไปนี้แสดงการแนบการตอบกลับ PostFlow นโยบายนี้จะทำงานกับข้อความตอบกลับ (การตอบกลับ PostFlow ของ ProxyEndpoint เป็นขั้นตอนการประมวลผลสุดท้ายก่อนที่จะส่งการตอบกลับไปยังแอปไคลเอ็นต์ที่ส่งคำขอ)

<PostFlow>
  <Response>
    <Step><Name>XMLtoJSONPolicy</Name></Step>
  </Response>
</PostFlow>