16.08.17 - Apigee Edge برای یادداشت‌های انتشار عمومی Cloud

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

در روز سه‌شنبه، 30 آگوست 2016، نسخه جدیدی از Apigee Edge را برای فضای ابری عمومی منتشر کردیم.

ویژگی‌ها و به‌روزرسانی‌های جدید

در ادامه به ویژگی‌ها و به‌روزرسانی‌های جدید این نسخه اشاره خواهیم کرد.

بارهای JSON در پیام اختصاص و خطای Raise

هنگام تنظیم یک بار داده JSON با استفاده از خط‌مشی‌های Assign Message یا Raise Fault، کاربران گاهی اوقات ملزم به استفاده از راه‌حل‌هایی برای اطمینان از قالب‌بندی صحیح پیام JSON در زمان اجرا بودند، مانند شروع بار داده با یک بک‌اسلش "\" یا تعیین variablePrefix و variableSuffix در عنصر Payload، حتی اگر هیچ متغیری در پیام استفاده نشده باشد.

با این بهبود، هیچ راه حلی برای اطمینان از قالب‌بندی صحیح پیام JSON لازم نیست و متغیرها را می‌توان با استفاده از آکولاد بدون ایجاد JSON نامعتبر مشخص کرد. برای مثال، کد زیر مقدار message.content را در پیام JSON وارد می‌کند:

<Payload contentType="application/json">{"message" : "{message.content}"}</Payload>

اگر از یک راه حل موقت استفاده کرده باشید، کد شما به کار خود ادامه خواهد داد. همچنین می‌توانید به جای آکولاد از variablePrefix و variableSuffix برای نشان دادن متغیرها استفاده کنید.

به عنصر <Set><Payload> در اسناد مرجع سیاست Assign Message و سیاست Raise Fault مراجعه کنید. (APIRT-1160)

بهبودهای سیاست XML به JSON

سیاست تبدیل XML به JSON با قابلیت‌های زیر بهبود یافته است. می‌توانید این سیاست را به صورت زیر پیکربندی کنید:

  • برخی از عناصر XML را هنگام تبدیل به عنوان آرایه در نظر بگیرید، که مقادیر را در سند JSON داخل براکت‌های '[]' قرار می‌دهد.
  • سطوح سلسله مراتب سند XML را در سند JSON نهایی حذف یا محدود کنید.

برای اطلاعات بیشتر، به سیاست تبدیل XML به JSON مراجعه کنید. (APIRT-1144)

چندین کاراکتر جایگزین در مسیرهای منبع محصول API

هنگام تعریف مسیرهای منابع در API Product، می‌توانید در چندین جای مسیر منبع، از wildcardها استفاده کنید. برای مثال، /team/*/invoices/** فراخوانی‌های API با هر مقدار پس از /team و هر مسیر منبع پس از invoices/ را مجاز می‌داند. یک URI مجاز در یک فراخوانی API proxyBasePath/team/finance/invoices/company/a خواهد بود.

اگر پس از این انتشار، مسیرهای منبع API Product موجود شما طبق انتظار از کار افتادند، ویژگی زیر را در سازمان خود تنظیم کنید تا به رفتار قبلی بازگردد: features.enableStandardWildCardMatchForAPIProductResources = true

(MGMT-3273)

توابع رمزنگاری در جاوا اسکریپت

مجموعه‌ای جدید از توابع crypto جاوا اسکریپت با کارایی بالا برای ایجاد، دریافت و به‌روزرسانی اشیاء زیر در دسترس است: MD5، SHA-1، SHA256، SHA512. شیء رمزنگاری همچنین به شما امکان می‌دهد تاریخ را در قالب‌های مختلف دریافت کنید. برای اطلاعات بیشتر، به مدل شیء جاوا اسکریپت مراجعه کنید. (APIRT-2886)

بررسی نسخه JAR جاوا Callout

هنگام آپلود یک منبع JAR جاوا در یک پروکسی API، اگر نسخه منبع جاوا با نسخه جاوای پشتیبانی‌شده توسط Edge که در بخش نرم‌افزارهای پشتیبانی‌شده و نسخه‌های پشتیبانی‌شده (MGMT-3420) ذکر شده است، ناسازگار باشد، کد وضعیت HTTP 400 (به جای 500) بازگردانده می‌شود.

اعتبارسنجی منابع پروکسی API

وقتی فایل‌های منبع پروکسی API (مانند فایل‌های جاوا اسکریپت یا JAR جاوا) در محدوده محیط یا سازمان ذخیره شده‌اند، چارچوب اعتبارسنجی دیگر شما را ملزم نمی‌کند که آن منابع را در سطح پروکسی API در یک بسته پروکسی نیز برای وارد کردن و گذراندن اعتبارسنجی لحاظ کنید. اعتبارسنجی منبع اکنون در زمان استقرار انجام می‌شود، نه در زمان وارد کردن. (MGMT-1430)

پیکربندی زمان انتظار برای پروکسی‌های API به صورت جداگانه

شما می‌توانید پروکسی‌های API را طوری پیکربندی کنید که پس از یک زمان مشخص (با وضعیت 504 gateway timeout) از کار بیفتند. مورد استفاده اصلی برای مشتریان Private Cloud است که پروکسی‌های API دارند که اجرای آنها زمان بیشتری طول می‌کشد. به عنوان مثال، فرض کنید به پروکسی‌های خاصی نیاز دارید که در 3 دقیقه از کار بیفتند. می‌توانید از یک ویژگی جدید api.timeout در پیکربندی برای یک پروکسی API استفاده کنید. در اینجا نحوه انجام این کار با مثال 3 دقیقه‌ای آورده شده است:

  1. ابتدا، حتماً متعادل‌کننده بار، روتر و پردازنده پیام را طوری پیکربندی کنید که پس از ۳ دقیقه، زمان انقضا داشته باشند.
  2. سپس پروکسی‌های مربوطه را طوری پیکربندی کنید که در عرض ۳ دقیقه از دسترس خارج شوند. مقدار را بر حسب میلی‌ثانیه مشخص کنید. برای مثال:
    <ProxyEndpoint name="default">
      <HTTPProxyConnection>
        <BasePath>/v1/weather</BasePath>
        <Properties>
          <!-- api.timeout is in milliseconeds -->
          <Property name="api.timeout">180000</Property>
        </Properties>
        ...
  3. با این حال، توجه داشته باشید که افزایش زمان‌های انتظار سیستم می‌تواند منجر به مشکلات عملکردی شود، زیرا همه پروکسی‌هایی که تنظیم api.timeout ندارند، از زمان‌های انتظار جدید و بالاتر متعادل‌کننده بار، روتر و پردازنده پیام استفاده می‌کنند. بنابراین سایر پروکسی‌های API را که به زمان‌های انتظار طولانی‌تری نیاز ندارند، طوری پیکربندی کنید که از زمان‌های انتظار پایین‌تری استفاده کنند. به عنوان مثال، کد زیر یک پروکسی API را طوری تنظیم می‌کند که پس از ۱ دقیقه زمان انتظارش تمام شود:
    <Property name="api.timeout">60000</Property>

مشتریان ابری، که نمی‌توانند زمان‌های وقفه Edge را تغییر دهند، می‌توانند زمان وقفه پروکسی API را نیز پیکربندی کنند، البته تا زمانی که این زمان وقفه کوتاه‌تر از زمان وقفه استاندارد پردازنده پیام Edge که ۵۷ ثانیه است، باشد.

شما نمی‌توانید مقدار را با یک متغیر پر کنید. این ویژگی در مرجع ویژگی‌های Endpoint پوشش داده شده است. (APIRT-1778)

سیاست TLS/SSL برای ثبت پیام‌ها

<KeyStore> و <TrustStore> را می‌توان در پیکربندی SSLInfo در سیاست ثبت پیام تنظیم کرد و امکان TLS/SSL یک‌طرفه و دوطرفه را با یک سرویس ثبت رویداد فراهم کرد. شما SSLInfo را در سیاست ثبت پیام به همان روشی که در یک پروکسی TargetEndpoint پیکربندی می‌کنید، پیکربندی می‌کنید. با این حال، TLS/SSL ثبت پیام فقط از پروتکل TCP پشتیبانی می‌کند. (APIRT-1858)

اشکالات برطرف شد

اشکالات زیر در این نسخه برطرف شده‌اند. این لیست در درجه اول برای کاربرانی است که می‌خواهند بررسی کنند آیا تیکت‌های پشتیبانی آنها برطرف شده است یا خیر. این لیست برای ارائه اطلاعات دقیق برای همه کاربران طراحی نشده است.

شناسه مسئله توضیحات
سِنگ-۶۰۹ فراخوانی‌های زمان اجرا هنگام حذف truststore مرتبط یا هنگام حذف گواهی معتبر در truststore با شکست مواجه نمی‌شوند.
MGMT-3404 مشاهده/بازیابی لاگ‌های Node.js و استقرار پروکسی‌ها بسیار کند است.
MGMT-3400 فراخوانی API مدیریت /userroles در صورتی که کاربری که فراخوانی را انجام می‌دهد علامت "+" در نام خود داشته باشد، با شکست مواجه می‌شود.
MGMT-3368 java.lang.ArrayIndexOutOfBoundsException: 1، هنگام وارد کردن یک بسته API Proxy که حاوی دایرکتوری resources/node/resources است.
MGMT-3364 OAuthV2: بررسی redirect_uri
MGMT-3319 فهرست کردن ورودی‌های یک گاوصندوق که یکی از ورودی‌های آن مقدار تهی دارد، برای سازمان‌ها (CPS و غیر CPS) کار نمی‌کند.
MGMT-3226 پرس‌وجو در سطح سازمان/محیط نباید تمام داده‌ها را دریافت کند و باعث خرابی API شود.
نسخه Release_160302 باگی داشت که در آن فهرست‌بندی منابع در سطح سازمان/سطح محیط در صورتی که اندازه تجمعی منابع بالاتر از ۱۶ مگابایت باشد، با شکست مواجه می‌شد. این اصلاحیه این مشکل را برطرف می‌کند.
AXAPP-2429 API تحلیلی با استفاده از response_status_code خطای دسترسی به داده‌ها را برمی‌گرداند
AXAPP-2386 رفع مشکل محتوای خالی گزارش‌ها در گزارش‌های ایمیل روزانه آنالیتیکس
AXAPP-2347 عدم دریافت ایمیل‌های خلاصه تحلیل روزانه
APIRT-3141 فراخوانی‌های جاوا هنگام فراخوانی new ExecutionResult() با شکست مواجه می‌شوند، زیرا سازنده به صورت خصوصی تعریف شده است.
APIRT-3140 خط‌مشی ServiceCallout در فراخوانی‌های API مربوط به HEAD کار نمی‌کند
APIRT-3131 هنگام استفاده از کسب درآمد با یک ارائه دهنده احراز هویت خارجی، مقدار createdBy برای یک پروکسی API به اشتباه نمایش داده می‌شود.
APIRT-3121 تغییر ایجاد شده در فایل منبع Org صد در صد مؤثر نیست
APIRT-3117 MP به ۱۰۰٪ استفاده از CPU رسید و ارائه ترافیک را متوقف کرد
APIRT-3016 خطاهای «زمان تماس تمام شد» روتر در هنگام استقرار
APIRT-2975 خرابی بسته گواهی را بارگذاری کنید
APIRT-2955 نمی‌توان ویژگی‌های خاصی از داده‌های پاسخ JSON را برای هدر نوع محتوای شکایت FHIR با عنوان 'application/json+fhir' پنهان کرد.
APIRT-2946 سیاست OAuthV2-RefreshToken ویژگی‌ها را پنهان نمی‌کند، حتی اگر نمایش روی نادرست تنظیم شده باشد
APIRT-2908 اجرای TLS1.2 برای فراخوانی API داخلی پس از به‌روزرسانی TLS1.2 در virtualhost الزامی است.
APIRT-2901 پاسخ‌های Gzip شده که از حافظه پنهان برگردانده می‌شوند، دو بار فشرده می‌شوند.
APIRT-2873 نمایندگان مجلس پس از حذف محصولات/توسعه‌دهندگان/پروکسی‌ها، NullPointerException مربوط به VerifyAPIKey را صادر می‌کنند
APIRT-2871 سیاست‌های متمرکز بر IO دو بار در Trace ظاهر می‌شوند
APIRT-2825 خطای گرامری در پاسخ خطای accesstoken
APIRT-2750 خرابی‌های ترافیکی در سازمان‌های خاص زیاد است
APIRT-2685 با خطای ناشناخته، ترافیک نمی‌تواند جریان یابد
APIRT-2647 خطای «جریان ورودی اصلی صفر بایت را برگرداند» با nonprod/dev
APIRT-2630 مشکلات متناوب هنگام تلاش برای خواندن مقدار از حافظه پنهان
APIRT-2620 برای برخی از مراحل مسدود کردن، مخزن نخ جداگانه‌ای در نظر گرفته شده است.
APIRT-2610 java.lang.ClassCastException با سیاست کش پاسخ
APIRT-2608 خطای تجزیه هدرهای آخرین اصلاح‌شده در سیاست‌های کش پاسخ
APIRT-2605 متغیرهای «سازمان» و «محیط» نباید از طریق سیاست‌ها بازنویسی شوند.
APIRT-2566 سیاست OAuthV2 هدر WWW-Authenticate ناقص را برمی‌گرداند
APIRT-2491 به‌روزرسانی TargetServer به دلیل وقفه زمانی RPC بین مدیریت و mps ناموفق بود.
APIRT-2386 دامنه رشته خالی در یک محصول API با دامنه‌های مجاز OAuth خالی ایجاد می‌شود.
APIRT-2383 به نظر نمی‌رسد سیاست‌های تبدیل XSL هیچ داده‌ای را در صورت بروز خطا ثبت کنند.
APIRT-2364 متغیرهای جریان خطای OAuth در صورت بروز خطا به‌روزرسانی نمی‌شوند
APIRT-2216 رویدادهای ارسالی از سرور - جریان رویداد در تولید مشکل دارد
APIRT-2079 اشکال‌زدایی فراخوانی cURL پس از انقضای زمان انقضا برای جلسه ایجاد شده متوقف نمی‌شود
APIRT-1495 محافظت در برابر تهدید XML نوع محتوای fhir را تشخیص نمی‌دهد
APIRT-347 سیاست XSL هنگام وارد کردن به درستی اعتبارسنجی نمی‌شود (نتایج را طبق مستندات به متغیرهای خروجی اختصاص نمی‌دهد)