สร้างนโยบายขั้นสูง
หน่วยนี้มีการอ้างอิงสําหรับนโยบายการจัดการ 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>
แหล่งข้อมูลอื่น ๆ
- เยี่ยมชม นโยบายการจัดการ API สําหรับตัวอย่างนโยบายเพิ่มเติม
- การจัดการข้อผิดพลาดในนโยบายการจัดการ API