عیب یابی خطای استقرار خط مشی ثبت پیام

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

پروتکل نامعتبر

پیام خطا

استقرار یک پروکسی API از طریق رابط کاربری Edge یا رابط برنامه‌نویسی کاربردی مدیریت Edge با این پیام خطا مواجه می‌شود:

Error Saving Revision revision_number
Invalid Protocol: invalid_protocol for Syslog handler in policy policy_name.

مثال پیام خطا

Error Saving Revision 4
Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.

مثال اسکرین شات

علت

اگر پروتکل مشخص شده در عنصر <Protocol> معتبر نباشد، پیاده‌سازی سیاست MessageLogging می‌تواند با این خطا با شکست مواجه شود. پروتکل‌های معتبر TCP و UDP هستند. برای ارسال پیام‌های syslog از طریق TLS/SSL، فقط TCP پشتیبانی می‌شود.

برای مثال، اگر HTTP را در عنصر <Protocol> از سیاست MessageLogging مطابق شکل زیر مشخص کنید، پیاده‌سازی API Proxy با این خطا مواجه می‌شود:

<Protocol>HTTP</Protocol>

تشخیص

  1. پالیسی MessageLogging که خطا در آن رخ داده است را شناسایی کنید. می‌توانید این اطلاعات را در پیام خطا پیدا کنید. برای مثال، در خطای زیر، نام پالیسی LogToSyslog:

    Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.
    
  2. در پیکربندی ناموفق سیاست MessageLogging، بررسی کنید که آیا پروتکل مشخص شده در عنصر <Protocol> معتبر است یا خیر. اگر پروتکل نامعتبری مشخص شده باشد، علت خطا همین است.

    برای مثال، سیاست زیر یک پروتکل نامعتبر را مشخص می‌کند.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <MessageLogging name="LogToSyslog">
      <Syslog>
        <Message>[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"] Weather request for WOEID {request.queryparam.w}.</Message>
        <Host>logs-01.loggly.com</Host>
        <Port>514</Port>
        <Protocol>HTTP</Protocol>
        <FormatMessage>true</FormatMessage>
      </Syslog>
      <logLevel>ALERT</logLevel>
    </MessageLogging>
    

    از آنجا که پروتکل تعریف شده در عنصر <Protocol> نامعتبر است، استقرار API Proxy با خطای زیر مواجه می‌شود:

    Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.
    

وضوح تصویر

مطمئن شوید که پروتکل تعریف‌شده در عنصر <Protocol> از سیاست MessageLogging معتبر است. عنصر <Protocol> از مقادیر زیر پشتیبانی می‌کند:

  • تی سی پی
  • بی سیم

برای اصلاح مثال نشان داده شده در بالا، یک پروتکل معتبر را در عنصر <Protocol> تعریف کنید:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<MessageLogging name="LogToSyslog">
  <Syslog>
    <Message>[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"] Weather request for WOEID {request.queryparam.w}.</Message>
    <Host>logs-01.loggly.com</Host>
    <Port>514</Port>
    <Protocol>TCP</Protocol>
    <FormatMessage>true</FormatMessage>
  </Syslog>
  <logLevel>ALERT</logLevel>
</MessageLogging>

پورت نامعتبر

پیام خطا

استقرار یک پروکسی API از طریق رابط کاربری Edge یا رابط برنامه‌نویسی کاربردی مدیریت Edge با این پیام خطا مواجه می‌شود:

Error Saving Revision revision_number
Invalid Port: 0 for Syslog handler in policy policy_name.

مثال پیام خطا

Error Saving Revision 4
Invalid Port: 0 for Syslog handler in policy LogToSyslog.

مثال اسکرین شات

علت

اگر شماره پورت در عنصر <Port> مشخص نشده باشد یا معتبر نباشد، پیاده‌سازی سیاست MessageLogging می‌تواند با این خطا با شکست مواجه شود. شماره پورت باید یک عدد صحیح بزرگتر از صفر باشد.

برای مثال، اگر عنصر <Port> به صورت زیر تعریف شود، پیاده‌سازی پروکسی API با شکست مواجه می‌شود:

<Port>0</Port>

تشخیص

  1. پالیسی MessageLogging را که خطا در آن رخ داده است، شناسایی کنید. می‌توانید این اطلاعات را از پیام خطا پیدا کنید. برای مثال، در خطای زیر، نام پالیسی LogToSyslog:

    Invalid Port: 0 for Syslog handler in policy LogToSyslog.
    
  2. در خط‌مشی ناموفق MessageLogging، بررسی کنید که آیا شماره پورت معتبری در عنصر <Port> مشخص شده است یا خیر. اگر شماره پورت تعریف نشده باشد یا نامعتبر باشد، علت خطا همین است.

    برای مثال، سیاست زیر شماره پورت نامعتبر را مشخص می‌کند:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <MessageLogging name="LogToSyslog">
      <Syslog>
        <Message>[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"] Weather request for WOEID {request.queryparam.w}.</Message>
        <Host>logs-01.loggly.com</Host>
        <Port>0</Port>
        <Protocol>TCP</Protocol>
        <FormatMessage>true</FormatMessage>
      </Syslog>
      <logLevel>ALERT</logLevel>
    </MessageLogging>
    

    از آنجا که شماره پورت تعریف شده در عنصر <Port> نامعتبر است، استقرار API Proxy با خطای زیر ناموفق است:

    Invalid Port: 0 for Syslog handler in policy LogToSyslog.
    

وضوح تصویر

مطمئن شوید که شماره پورت در عنصر <Port> از سیاست MessageLogging تعریف شده باشد. این شماره باید یک عدد صحیح بزرگتر از صفر باشد.

برای اصلاح مثال نشان داده شده در بالا، یک شماره پورت معتبر را در عنصر <Protocol> تعریف کنید.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<MessageLogging name="LogToSyslog">
  <Syslog>
    <Message>[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"] Weather request for WOEID {request.queryparam.w}.</Message>
    <Host>logs-01.loggly.com</Host>
    <Port>514</Port>
    <Protocol>TCP</Protocol>
    <FormatMessage>true</FormatMessage>
  </Syslog>
  <logLevel>ALERT</logLevel>
</MessageLogging>