สร้างนโยบายขั้นสูง

เสร็จสมบูรณ์เมื่อ

หน่วยนี้มีการอ้างอิงสําหรับนโยบายการจัดการ API ต่อไปนี้:

  • ควบคุมโฟลว์ - ใช้คําสั่งนโยบายตามเงื่อนไขที่ยึดตามผลลัพธ์ของการประเมินนิพจน์บูลีน
  • คําขอไปข้างหน้า - ส่งต่อคําขอไปยังบริการ Backend
  • จํากัดภาวะพร้อมกัน - ป้องกันนโยบายที่ล้อมรอบจากการดําเนินการโดยการร้องขอมากกว่าจํานวนคําขอที่ระบุในแต่ละครั้ง
  • บันทึกไปยังฮับเหตุการณ์ - ส่งข้อความในรูปแบบที่ระบุไปยังฮับเหตุการณ์ที่กําหนดโดยเอนทิตีตัวบันทึก
  • การตอบสนองแบบจําลอง - ยกเลิกการดําเนินการไปป์ไลน์และส่งกลับการตอบสนองที่ถูกจําลองไปยังผู้เรียกโดยตรง
  • ลองใหม่ - ลองการดําเนินการคําสั่งนโยบายที่ถูกล้อมรอบอีกครั้ง ถ้าและจนกว่าเป็นไปตามเงื่อนไข การดําเนินการทําซ้ําในช่วงเวลาที่ระบุและถึงจํานวนการลองใหม่ที่ระบุ

ควบคุมโฟลว์

นโยบาย choose จะใช้คําสั่งนโยบายที่แนบมาโดยยึดตามผลลัพธ์ของการประเมินนิพจน์บูลีนซึ่งคล้ายกับ if-then-else หรือการสร้างสวิตช์ในภาษาการเขียนโปรแกรม

<choose>
    <when condition="Boolean expression | Boolean constant">
        <!— one or more policy statements to be applied if the above condition is true  -->
    </when>
    <when condition="Boolean expression | Boolean constant">
        <!— one or more policy statements to be applied if the above condition is true  -->
    </when>
    <otherwise>
        <!— one or more policy statements to be applied if none of the above conditions are true  -->
</otherwise>
</choose>

นโยบายโฟลว์การควบคุมต้องมีอย่างน้อยหนึ่งองค์ประกอบ <when/> องค์ประกอบ <otherwise/> เป็นทางเลือก เงื่อนไขในองค์ประกอบ <when/> จะถูกประเมินตามลําดับที่ปรากฏภายในนโยบาย นโยบายที่อยู่ภายในองค์ประกอบ <when/> แรกจะถูกนําไปใช้เมื่อแอตทริบิวต์เงื่อนไขเป็นจริง นโยบายที่อยู่ภายในองค์ประกอบ <otherwise/> ถ้ามี จะถูกนําไปใช้หากแอตทริบิวต์เงื่อนไของค์ประกอบ <when/> ทั้งหมดเป็นเท็จ

คําขอการส่งต่อ

นโยบาย forward-request ส่งต่อคําขอขาเข้าไปยังบริการ Backend ที่ระบุไว้ในบริบทคําขอ URL ของบริการ backend จะถูกระบุไว้ในการตั้งค่า API และสามารถเปลี่ยนได้โดยใช้นโยบายตั้งค่าบริการ backend

การลบนโยบายนี้ส่งผลให้คําขอไม่ถูกส่งต่อไปยังบริการ Backend นโยบายในส่วนขาออกจะถูกประเมินทันทีเมื่อนโยบายในส่วนขาเข้าเสร็จสมบูรณ์

<forward-request timeout="time in seconds" follow-redirects="true | false"/>

จํากัดภาวะพร้อมกัน

นโยบาย limit-concurrency ป้องกันไม่ให้นโยบายที่ล้อมไว้ดําเนินการโดยการร้องขอมากกว่าจํานวนการร้องขอที่ระบุเมื่อใดก็ได้ เมื่อคําขอเกินจํานวนนั้น คําขอใหม่จะล้มเหลวทันทีด้วยคําขอที่ 429 มากเกินไป รหัสสถานะ

<limit-concurrency key="expression" max-count="number">
        <!— nested policy statements -->
</limit-concurrency>

บันทึกไปยังฮับเหตุการณ์

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

<log-to-eventhub logger-id="id of the logger entity" partition-id="index of the partition where messages are sent" partition-key="value used for partition assignment">
  Expression returning a string to be logged
</log-to-eventhub>

การตอบสนองจําลอง

mock-responseตามชื่อที่บอกเป็นนัย จะถูกใช้เพื่อจําลอง API และการดําเนินการ ยกเลิกการดําเนินการไปป์ไลน์ปกติและส่งกลับการตอบสนองที่ถูกจําลองไปยังผู้เรียก นโยบายจะพยายามส่งกลับคําตอบของความเที่ยงตรงสูงสุดเสมอ ซึ่งชอบตัวอย่างเนื้อหาการตอบสนองเมื่อใดก็ตามที่พร้อมใช้งาน ซึ่งจะสร้างการตอบกลับตัวอย่างจาก schema เมื่อมีการระบุ schema และไม่มีตัวอย่าง หากไม่พบตัวอย่างหรือสคีมา คําตอบที่ไม่มีเนื้อหาจะถูกส่งกลับ

<mock-response status-code="code" content-type="media type"/>

ลอง

นโยบาย retry จะดําเนินการนโยบายรองหนึ่งครั้งแล้วลองดําเนินการอีกครั้งจนกว่า condition ลองใหม่จะ false หรือลองอีกครั้ง count จะหมดลง

<retry
    condition="boolean expression or literal"
    count="number of retry attempts"
    interval="retry interval in seconds"
    max-interval="maximum retry interval in seconds"
    delta="retry interval delta in seconds"
    first-fast-retry="boolean expression or literal">
        <!-- One or more child policies. No restrictions -->
</retry>

ส่งกลับการตอบสนอง

นโยบาย return-response ยกเลิกการดําเนินการไปป์ไลน์และส่งกลับค่าเริ่มต้นหรือการตอบสนองแบบกําหนดเองไปยังผู้เรียก การตอบกลับเริ่มต้นถูก 200 OK โดยไม่มีเนื้อความ สามารถระบุการตอบกลับแบบกําหนดเองได้ผ่านตัวแปรบริบทหรือคําสั่งนโยบาย เมื่อมีการระบุทั้งสองอย่าง คําสั่งนโยบายจะปรับเปลี่ยนตัวแปรบริบทก่อนที่จะถูกส่งกลับไปยังผู้เรียก

<return-response response-variable-name="existing context variable">
  <set-header/>
  <set-body/>
  <set-status/>
</return-response>

แหล่งข้อมูลอื่น ๆ