عیب‌یابی خطای استقرار خط‌مشی برنامه‌نویسی برنامه افزودنی، عیب‌یابی خطای استقرار خط‌مشی برنامه‌نویسی برنامه افزودنی

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

نمونه‌ی نامعتبرِ اتصال‌دهنده

پیام خطا

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

Error Saving Revision revision_number
In policy_name: Connector must not be empty.

مثال پیام خطا

Error Saving Revision 1
In Extension Callout-1: Connector must not be empty.

مثال تصویر خطا

پیام خطای نمونه اتصال نامعتبر

علت

این خطا زمانی رخ می‌دهد که عنصر <Connector> در سیاست ExtensionCallout وجود نداشته باشد یا روی مقدار خالی تنظیم شده باشد.

تشخیص

  1. نام سیاست ExtensionCallout را در پیام خطا مشخص کنید. برای مثال، در خطای زیر، نام سیاست ExtensionCallout، Extension Callout-1 است:

    Error Saving Revision 1
    In Extension Callout-1: Connector must not be empty
  2. XML مربوط به سیاست ناموفق ExtensionCallout را بررسی کنید و بررسی کنید که آیا عنصر <Connector> وجود دارد و خالی نیست. برای مثال، در سیاست زیر، عنصر <Connector> خالی است و نام افزونه را شامل نمی‌شود:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ConnectorCallout async="false" continueOnError="true" enabled="true" name="Extension-Callout-1">
        <DisplayName>Extension Callout-1</DisplayName>
        <Connector></Connector>
        <Action>downloadFile</Action>
        <Input><![CDATA[
             {}
         ]]></Input>
        <Output>context-variable-name</Output>
    </ConnectorCallout>

از آنجایی که عنصر <Connector> خالی است، پیاده‌سازی API Proxy با شکست مواجه می‌شود.

وضوح تصویر

مطمئن شوید که مقدار عنصر <Connector> در سیاست فراخوانی افزونه‌ها (Extension Callout) همیشه مشخص شده و با نام افزونه‌ی واقعی ایجاد شده در سازمان مطابقت دارد.

برای اصلاح سیاست ExtensionCallout مثال بالا، می‌توانید عنصر <Connector> را روی نام افزونه‌ای که در محیط خاصی که API Proxy در آن مستقر است، وجود دارد، تنظیم کنید.

برای تعیین نام افزونه، در رابط کاربری Edge می‌توانید به مسیر Admin > Extensions بروید. نام تمام افزونه‌های سازمان شما در آنجا نمایش داده می‌شود. نام افزونه باید در عنصر <Connector> تنظیم شود.

نام همه افزونه‌ها را در رابط کاربری Edge مشاهده کنید.

در زیر مثالی را مشاهده می‌کنید که در آن نام افزونه (Extension Name) به درستی در عنصر <Connector> تنظیم شده است:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Extension-Callout-1">
    <DisplayName>Extension Callout-1</DisplayName>
    <Connector>cloud_storage_ext</Connector>
    <Action>downloadFile</Action>
    <Input><![CDATA[
         {}
     ]]></Input>
    <Output>context-variable-name</Output>
</ConnectorCallout>

نمونه اتصال وجود ندارد

پیام خطا

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

Error Deploying Revision revision_number to environment
In policy_name: Connector <extension_name> does not exist in environment environment.

مثال پیام خطا

Error Deploying Revision 1 to test
In Extension Callout-1: Connector cloud_storage does not exist in environment test.

مثال تصویر خطا

پیام خطای عدم وجود نمونه کانکتور

علت

این خطا زمانی رخ می‌دهد که عنصر <Connector> در خط‌مشی ExtensionCallout روی نامی تنظیم شده باشد که در محیطی که پروکسی API در آن مستقر شده است، وجود نداشته باشد.

تشخیص

  1. نام سیاست ExtensionCallout، نام افزونه نامعتبر استفاده شده در عنصر <Connector> از سیاست ExtensionCallout و محیطی که خطا در آن رخ داده است را شناسایی کنید. می‌توانید همه این موارد را در پیام خطا پیدا کنید.

    برای مثال، در خطای زیر، نام پالیسی ExtensionCallout، Extension Callout-1, نام d Extension، cloud_storage و نام محیط، test است:

        Error Deploying Revision 1 to test
        In Extension Callout-1: Connector cloud_storage does not exist in environment test.
  2. فایل XML مربوط به خط‌مشی ExtensionCallout که با خطا مواجه شده است را بررسی کنید و بررسی کنید که آیا نام افزونه‌ی مشخص‌شده برای عنصر <Connector> با آنچه در پیام خطا آمده است، مطابقت دارد یا خیر.

    در این مثال، نام افزونه‌ای که در عنصر <Connector> مشخص شده است، cloud_storage است:

        <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <ConnectorCallout async="false" continueOnError="true" enabled="true" name="Extension-Callout-1">
            <DisplayName>Extension Callout-1</DisplayName>
            <Connector>cloud_storage</Connector>
            <Action>downloadFile</Action>
            <Input><![CDATA[
                 {}
             ]]></Input>
            <Output>context-variable-name</Output>
        </ConnectorCallout>
  3. بررسی کنید که آیا نام افزونه در محیط ایجاد شده است یا خیر (که در مرحله ۱ تعیین شده است).

    در رابط کاربری Edge، به مسیر Admin > Extensions بروید و بررسی کنید که آیا افزونه وجود دارد و نام آن با نام مشخص شده در عنصر <Connector> در سیاست ExtensionCallout مطابقت دارد یا خیر.

    در تصویر زیر توجه کنید که افزونه‌ی cloud_storage_ext وجود دارد، اما با عنصر <Connector> مشخص شده در مثال خط‌مشی ExtensionCallout که در بالا نشان داده شده است، مطابقت ندارد:

    نام همه افزونه‌ها را در رابط کاربری Edge مشاهده کنید.

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

    In Extension Callout-1: Connector cloud_storage does not exist in environment test.

وضوح تصویر

مطمئن شوید که افزونه‌ی مشخص‌شده در عنصر <Connector> از سیاست ExtensionCallout ایجاد شده و نام آن به درستی مشخص شده است.

برای اطلاعات بیشتر در مورد نحوه ایجاد افزونه، به آموزش: استفاده از افزونه‌ها مراجعه کنید.

برای رفع مشکل مثال بالا، نام را طوری اصلاح کنید که با پسوند واقعی مطابقت داشته باشد:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Extension-Callout-1">
    <DisplayName>Extension Callout-1</DisplayName>
    <Connector>cloud_storage_ext</Connector>
    <Action>downloadFile</Action>
    <Input><![CDATA[
         {}
     ]]></Input>
    <Output>context-variable-name</Output>
</ConnectorCallout>

اقدام نامعتبر

پیام خطا

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

Error Saving Revision revision_number
In policy_name: Action must not be empty.

مثال پیام خطا

Error Saving Revision 1
In Extension Callout-1: Action must not be empty.

مثال تصویر خطا

پیام خطای اقدام نامعتبر

علت

این خطا زمانی رخ می‌دهد که عنصر <Action> در سیاست ExtensionCallout وجود نداشته باشد یا روی مقدار خالی تنظیم شده باشد.

تشخیص

  1. نام سیاست ExtensionCallout را شناسایی کنید. می‌توانید این اطلاعات را در پیام خطا پیدا کنید. برای مثال، در خطای زیر، نام سیاست ExtensionCallout، Extension Callout-1:

        Error Saving Revision 1
        In Extension Callout-1: Action must not be empty.
  2. XML مربوط به خط‌مشی ExtensionCallout ناموفق را بررسی کنید و بررسی کنید که آیا action در عنصر <Action> مشخص شده است یا خیر. اگر عنصر <Action> وجود ندارد یا خالی است، علت خطا همین است.

    در این مثال، عنصر <Action> خالی است:

        <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <ConnectorCallout async="false" continueOnError="true" enabled="true" name="Extension-Callout-1">
            <DisplayName>Extension Callout-1</DisplayName>
            <Connector>cloud_storage_ext</Connector>
            <Action></Action>
            <Input><![CDATA[
                 {}
             ]]></Input>
            <Output>context-variable-name</Output>
        </ConnectorCallout>

وضوح تصویر

مطمئن شوید که عنصر <Action> همیشه در سیاست ExtensionCallout مشخص شده و خالی نباشد.

برای کسب اطلاعات در مورد نحوه ایجاد یک افزونه و نحوه استفاده از آن در سیاست با عنصر <Action> صحیح، به آموزش: استفاده از افزونه‌ها مراجعه کنید.

برای رفع مشکل بالا، اقدام صحیح را برای افزونه مشخص کنید:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ConnectorCallout async="false" continueOnError="true" enabled="true" name="Extension-Callout-1">
    <DisplayName>Extension Callout-1</DisplayName>
    <Connector>cloud_storage_ext</Connector>
    <Action>downloadFile</Action>
    <Input><![CDATA[
         {}
     ]]></Input>
    <Output>context-variable-name</Output>
</ConnectorCallout>

AllowExtensionsInPostClientFlow

پیام خطا

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

Error Deploying Revision revision_number to environment
In policy_name: Policy is not allowed in PostClientFlow.

مثال پیام خطا

Error Deploying Revision 1 to test
In Extension Callout-1: Policy is not allowed in PostClientFlow.

مثال تصویر خطا

پیام خطای مجاز بودن افزونه‌ها در جریان پس از ارسال به کلاینت

علت

داشتن یک سیاست ExtensionCallout در یک جریان PostClient ممنوع است. اگر یک سیاست ExtensionCallout در یک جریان PostClient قرار گیرد، استقرار پروکسی API با این خطا با شکست مواجه می‌شود.

تشخیص

  1. نام سیاست ExtensionCallout را شناسایی کنید. می‌توانید این اطلاعات را در پیام خطا پیدا کنید. برای مثال، در خطای زیر، نام سیاست ExtensionCallout، Extension Callout-1:

    In Extension Callout-1: Policy is not allowed in PostClientFlow.
  2. تمام جریان‌های PostClient را در تمام نقاط انتهایی پروکسی API خاص که در آن خرابی رخ داده است، بررسی کنید. لطفاً به مقاله «کنترل نحوه اجرای پروکسی با جریان‌ها» مراجعه کنید.

    اگر متوجه شدید که سیاست ExtensionCallout (که در مرحله ۱ تعیین شد) در جریان PostClient قرار گرفته است، پس علت خطا همین است.

    برای مثال، جریان PostClient زیر دارای ExtensionCallout Policy است:

        ...
        <PostClientFlow>
                <Request/>
                <Response>
                    <Step>
                        <Name>Extension-Callout-1</Name>
                    </Step>
                </Response>
            </PostClientFlow>
        ...

وضوح تصویر

مطمئن شوید که پالیسی ExtensionCallout در جریان PostClient قرار نگرفته باشد.

برای رفع مشکل ذکر شده در بالا، باید سیاست ExtensionCallout را به هر جریان دیگری منتقل کنید.

...
<PreFlow name="PreFlow">
    <Request/>
    <Response>
        <Step>
            <Name>Extension-Callout-1</Name>
        </Step>
    </Response>
</PreFlow>
...