خط مشی Spike Arrest را به API خود اضافه کنید

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

آنچه یاد خواهید گرفت

از طریق این آموزش، شما یاد خواهید گرفت که:

  • سیاستی اضافه کنید که بر درخواست و پاسخ تأثیر بگذارد.
  • اثرات سیاست را ببینید.

آنچه نیاز دارید

  • حداقل یک سیاست در پروکسی شما (همچنین بخشی از آموزش شروع به کار).
  • curl روی دستگاه شما نصب شده باشد تا بتوانید فراخوانی‌های API را از خط فرمان انجام دهید.

سیاست Spike Arrest را اضافه کنید

در این آموزش، شما سیاست SpikeArrest را اضافه و پیکربندی خواهید کرد تا از سرویس هدف در برابر افزایش ناگهانی ترافیک که می‌تواند ناشی از افزایش استفاده، کلاینت‌های دارای باگ یا حملات مخرب باشد، محافظت کنید. هنگامی که تعداد درخواست‌ها از حد مجاز فراتر رود، API برای یک درخواست خطای HTTP 500 را برمی‌گرداند.

سیاست Spike Arrest را به یک پروکسی API اضافه کنید:

  1. وارد apigee.com/edge شوید.
  2. در نوار ناوبری سمت چپ، گزینه‌ی Develop > API Proxies را انتخاب کنید.
  3. پروکسی API مورد نظر برای افزودن سیاست Spike Arrest را انتخاب کنید.

    اگر آموزش شروع به کار را دنبال کرده باشید، می‌توانید آن را به پروکسی "getstarted" که در بخش "ایجاد یک پروکسی API" ایجاد کرده‌اید، اضافه کنید.

  4. در ویرایشگر مربوط به پروکسی API جدید، روی تب Develop کلیک کنید:

    ویرایشگر پروکسی API به شما امکان می‌دهد ساختار پروکسی API خود را مشاهده کرده و جریان آن را پیکربندی کنید. این ویرایشگر، نمایش بصری از جریان پیام درخواست و پاسخ پروکسی شما و همچنین نمایش قابل ویرایش XML زیربنایی که پروکسی را تعریف می‌کند، ارائه می‌دهد.

  5. در پنل سمت چپ ناویگاتور، در قسمت Proxy Endpoints > default روی PreFlow کلیک کنید. (در آموزش‌های دیگر، مفهوم جریان‌ها پوشش داده خواهد شد.)
  6. روی دکمه‌ی +Step در بالای صفحه، مربوط به Request PreFlow، کلیک کنید. این یک لیست دسته‌بندی‌شده از تمام Policyهایی که می‌توانید ایجاد کنید را نمایش می‌دهد.

    روی مرحله درخواست پیش‌جریان کلیک کنید

  7. در بخش مدیریت ترافیک، گزینه Spike Arrest را انتخاب کنید. پنجره New Policy ظاهر می‌شود:

    ایجاد سیاست دستگیری اسپایک

  8. نام‌های پیش‌فرض را رها کنید و روی افزودن کلیک کنید. سیاست جدید به جریان PreFlow یک درخواست متصل می‌شود.
  9. در ناویگاتور، مطمئن شوید که PreFlow در قسمت Proxy Endpoints > default هنوز انتخاب شده است و موارد زیر را در API Proxy Editor یادداشت کنید:
    • سیاست جدید Spike Arrest-1 در بخش Policies در ناویگاتور، در سمت چپ ویرایشگر پروکسی API اضافه شده است.
    • آیکون Spike Arrest-1 به نمای Designer در قسمت بالای مرکز ویرایشگر پروکسی API اضافه می‌شود که نمایش بصری از جریان‌های پیام پروکسی شما است.
    • فایل XML مربوط به این سیاست در نمای کد (Code view) در پایین و وسط ویرایشگر پروکسی API نمایش داده می‌شود.

    مشاهده PreFlow با سیاست Spike Arrest

  10. در ناویگاتور، در قسمت سیاست‌ها، Spike Arrest-1 را انتخاب کنید و موارد زیر را در ویرایشگر پروکسی API یادداشت کنید:
    • جزئیات سیاست در نمای Designer در قسمت بالای مرکز ویرایشگر پروکسی API نمایش داده می‌شود.
    • فایل XML مربوط به این سیاست در نمای کد (Code view) در پایین و وسط ویرایشگر پروکسی API نمایش داده می‌شود.
    • مقادیر عنصر XML و ویژگی‌های مربوط به این سیاست در قسمت Property Inspector در سمت راست ویرایشگر پروکسی API نمایش داده می‌شوند.

  11. در XML مربوط به این سیاست، مقدار عنصر <Rate> را به ۱pm تغییر دهید (که معادل تقریباً ۲ درخواست مجاز در هر ۶۰ ثانیه در فضای ابری است).

    شما می‌توانید نرخ را به عنوان یک مقدار صحیح در هر دقیقه ( pm ) یا در هر ثانیه ( ps ) مشخص کنید. این یک حد بسیار پایین است و فقط برای این آموزش برای نمایش سیاست استفاده می‌شود. معمولاً آن را روی حد بسیار بالاتری تنظیم می‌کنید.

    توجه داشته باشید که مقدار Rate در Property Inspector نیز به "1pm" تغییر می‌کند. به عنوان یک جایگزین، می‌توانید مقدار نرخ را در Property Inspector تغییر دهید تا در نمای XML منعکس شود.

  12. برای ذخیره نسخه فعلی به همراه تغییرات خود، روی ذخیره کلیک کنید.
  13. با استفاده از curl و جایگزین کردن نام سازمان Apigee خود با org_name ، API را فراخوانی کنید:

    curl "http://org_name-test.apigee.net/getstarted"

    برای مثال:

    curl "http://ahamilton-eval-test.apigee.net/getstarted" | python -m json.tool

    مطمئن شوید که درخواست با موفقیت انجام می‌شود و همان پاسخ XML قبلی را مشاهده می‌کنید. (همچنین می‌توانید فقط URL را در مرورگر وب وارد کنید.)

  14. دستور curl را دو یا سه بار دیگر در عرض یک دقیقه اجرا کنید (یا پنجره مرورگر را رفرش کنید) و توجه داشته باشید که به دلیل عبور از محدودیت نرخ خط‌مشی، پیام زیر را دریافت می‌کنید:
    {
    "fault": {
      "faultstring":"Spike arrest violation. Allowed rate : 1pm",
      "detail": {
        "errorcode":"policies.ratelimit.SpikeArrestViolation"}
      }
    }

    اگر سعی کنید ظرف یک دقیقه تماس‌های بیشتری برقرار کنید، باید همچنان پیام خطا را دریافت کنید.

  15. سیاست خود را ویرایش کنید تا محدودیت Rate> را روی ۱۵ بعد از ظهر تنظیم کنید (که تقریباً به معنای مجاز بودن ۲ تماس در هر ۴ ثانیه در فضای ابری است) و سپس پروکسی API را ذخیره کنید.
  16. دستور curl را اجرا کنید یا مرورگر را مرتباً رفرش کنید ( curl سریع‌تر است). توجه داشته باشید که اگر یک یا دو تماس را در فواصل ۴ ثانیه‌ای برقرار کنید، تماس‌های شما موفقیت‌آمیز خواهند بود. اگر تماس‌ها را سریع برقرار کنید، بیش از دو تماس در عرض ۴ ثانیه، باید خطا را دریافت کنید. اما پس از هر فاصله ۴ ثانیه‌ای، می‌توانید به برقراری تماس ادامه دهید، برخلاف اینکه به مدت یک دقیقه کامل مسدود شوید (با تنظیم ساعت ۱ بعد از ظهر).