پیوست کردن یک خط مشی به یک ProxyEndpoint یا TargetEndpoint Flow

شما در حال مشاهده اسناد Apigee Edge هستید.
به مستندات Apigee X بروید .
اطلاعات

سیاست ها تا زمانی که به یک جریان متصل نشوند اجرا نمی شوند. شما می توانید با نامگذاری یک خط مشی در پیکربندی مرحله، یک پیوست خط مشی ایجاد کنید.

انتخاب نقطه پیوست برای رفتار پراکسی API شما بسیار مهم است. به عنوان مثال، اگر خط مشی Quota را به یک جریان پاسخ پیوست کنید، پس از ارسال پیام درخواست به سرویس Backend، Quota اعمال می شود. این هدف از اعمال یک خط مشی سهمیه بندی را شکست می دهد! بنابراین، باید خط مشی Quota را به عنوان مرحله پردازشی در جریان درخواست پیوست کنید.

قالب یک پیوست خط مشی به این صورت است:

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

به عنوان مثال:

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

با افزودن پیکربندی Step به عنصر Flow درخواست یا پاسخ مناسب در یک پیکربندی ProxyEndpoint یا TargetEndpoint، یک خط‌مشی به یک جریان متصل می‌شود.

می‌توانید خط‌مشی را به یک درخواست یا جریان پاسخ پیوست کنید. جریان های درخواست و پاسخ بیشتر به PreFlow و PostFlow تقسیم می شوند.

مثال زیر حداقل پیکربندی ProxyEndpoint را بدون هیچ پیوست خط مشی نشان می دهد. این به سادگی HTTPPproxyConnection و RouteRule (ورودی) را تعریف می کند.

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

شما باید این پیکربندی را تغییر دهید تا ProxyEndpoint قبل از اینکه پروکسی API هر پردازش دیگری را انجام دهد، یک خط مشی Quota (به عنوان مرحله پردازش) را اعمال کند. اگر برنامه‌نویسی از حد نصاب خود فراتر رفته باشد، نمی‌خواهید هیچ منبع محاسباتی را برای درخواست‌های اضافی هدر دهید.

برای اجرای این پیکربندی، یک مرحله پردازشی را به صورت زیر به درخواست 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 اجرا شود. به عنوان مثال، می‌خواهید Quota را در PreFlow بررسی کنید، سپس مجموعه دیگری از پردازش را پس از بررسی Quota انجام دهید، مانند تبدیل درخواست از JSON به XML. برای انجام این کار، یک خط مشی را به مسیر درخواست PostFlow پیوست کنید. نمونه زیر یک نمونه درخواست پیوست PostFlow است. این خط مشی پس از اجرای همه سیاست های موجود در PreFlow (و هر جریان شرطی) روی پیام درخواست اجرا می شود.

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

در زیر یک نمونه پاسخ پیوست PostFlow است. این خط مشی روی پیام پاسخ اجرا می شود. (پاسخ ProxyEndpoint PostFlow مرحله نهایی پردازش قبل از بازگشت پاسخ به برنامه مشتری درخواست کننده است.)

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