Pemecahan masalah error deployment kebijakan Info Ekstensi

Anda sedang melihat dokumentasi Apigee Edge.
Buka Dokumentasi Apigee X.
info

ini.

InvalidConnectorInstance

Pesan Error

Penyebaran proxy API melalui Edge UI atau Edge API pengelolaan gagal dengan pesan kesalahan ini:

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

Contoh Pesan Error

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

Contoh Screenshot Error

Pesan error Instance Konektor tidak valid

Penyebab

Error ini terjadi jika elemen <Connector> di kebijakan ExtensionInfo tidak ada atau disetel ke nilai kosong.

Diagnosis

  1. Identifikasi nama kebijakan EkstensiInfo dalam pesan error. Misalnya, dalam error berikut, nama kebijakan ExtensionInfo adalah Extension Callout-1:

    Error Saving Revision 1
    In Extension Callout-1: Connector must not be empty
  2. Periksa XML kebijakan Extensioncallout yang gagal dan verifikasi apakah elemen <Connector> ada dan tidak kosong. Misalnya, dalam kebijakan di bawah, elemen <Connector> kosong dan tidak berisi nama ekstensi:

    <?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>

Karena elemen <Connector> kosong, deployment Proxy API akan gagal.

Resolusi

Pastikan nilai untuk elemen <Connector> kebijakan Info Ekstensi selalu ditentukan dan cocok dengan nama ekstensi sebenarnya yang dibuat di organisasi.

Untuk memperbaiki contoh kebijakan ExtensionInfo yang ditampilkan di atas, Anda dapat menetapkan elemen <Connector> ke nama ekstensi yang ada di lingkungan tertentu tempat Proxy API di-deploy.

Untuk menentukan nama ekstensi, di UI Edge Anda dapat menavigasi ke Admin > Ekstensi. Nama semua ekstensi di organisasi Anda akan ditampilkan di sana. Nama ekstensi harus ditetapkan dalam elemen <Connector>.

Lihat nama semua ekstensi di UI Edge.

Berikut adalah contoh dengan Nama Ekstensi yang ditetapkan dengan benar dalam elemen <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>

ConnectorInstanceDoesNotExists

Pesan Error

Penyebaran proxy API melalui Edge UI atau Edge API pengelolaan gagal dengan pesan kesalahan ini:

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

Contoh Pesan Error

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

Contoh Screenshot Error

Pesan error Instance Konektor Tidak ada

Penyebab

Error ini terjadi jika elemen <Connector> di kebijakan Extensioncallout disetel ke nama yang tidak ada di lingkungan tempat proxy API di-deploy.

Diagnosis

  1. Identifikasi nama kebijakan ExtensionInfo, nama Ekstensi yang tidak valid yang digunakan di elemen <Connector> kebijakan Extensioncallout, dan lingkungan tempat error terjadi. Anda dapat menemukan semua item ini dalam pesan error.

    Misalnya, dalam error berikut, nama kebijakan ExtensionInfo adalah Extension Callout-1,invalid nama Ekstensi adalah cloud_storage dan nama lingkungannya adalah test:

        Error Deploying Revision 1 to test
        In Extension Callout-1: Connector cloud_storage does not exist in environment test.
    
  2. Periksa XML kebijakan ExtensionInfo yang gagal dan verifikasi apakah nama ekstensi yang ditentukan untuk elemen <Connector> cocok dengan yang ada dalam pesan error.

    Dalam contoh ini, nama ekstensi yang ditentukan dalam elemen <Connector> adalah 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. Verifikasi apakah nama ekstensi telah dibuat di lingkungan (ditentukan di langkah #1).

    Pada UI Edge, arahkan ke Admin > Ekstensi dan periksa apakah ekstensi ada dan namanya cocok dengan yang ditentukan di elemen <Connector> di kebijakan Extensioncallout.

    Perhatikan pada screenshot di bawah bahwa ekstensi cloud_storage_ext ada, tetapi tidak sesuai dengan elemen <Connector> yang ditentukan dalam contoh kebijakan ExtensionInfo yang ditampilkan di atas:

    Lihat nama semua ekstensi di UI Edge.

    Karena nama ekstensi yang ditentukan dalam elemen <Connector> tidak ada, Anda mendapatkan error deployment:

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

Resolusi

Pastikan ekstensi yang ditentukan dalam elemen <Connector> kebijakan ExtensionInfo telah dibuat dan nama ditetapkan dengan benar.

Lihat Tutorial: Menggunakan ekstensi untuk informasi tentang cara membuat ekstensi.

Untuk memperbaiki contoh di atas, perbaiki nama agar cocok dengan ekstensi yang sebenarnya:

<?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>

InvalidAction

Pesan Error

Penyebaran proxy API melalui Edge UI atau Edge API pengelolaan gagal dengan pesan kesalahan ini:

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

Contoh Pesan Error

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

Contoh Screenshot Error

Pesan error Tindakan Tidak Valid

Penyebab

Error ini terjadi jika elemen <Action> di kebijakan ExtensionInfo tidak ada atau disetel ke nilai kosong.

Diagnosis

  1. Mengidentifikasi nama kebijakan ExtensionInfo. Anda dapat menemukan informasi ini dalam pesan error. Misalnya, dalam error berikut, nama kebijakan ExtensionInfo adalah Extension Callout-1:

        Error Saving Revision 1
        In Extension Callout-1: Action must not be empty.
    
  2. Periksa XML kebijakan Extensioncallout yang gagal dan pastikan tindakan ditentukan dalam elemen <Action>. Jika elemen <Action> tidak ada atau kosong, maka itulah penyebab error.

    Dalam contoh ini, elemen <Action> kosong:

        <?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>
    

Resolusi

Pastikan elemen <Action> selalu ditentukan dan tidak kosong di kebijakan ExtensionInfo.

Lihat Tutorial: Menggunakan ekstensi untuk mendapatkan informasi tentang cara membuat ekstensi dan cara menggunakannya dalam kebijakan dengan elemen <Action> yang benar.

Untuk memperbaiki masalah di atas, tentukan tindakan yang benar untuk ekstensi:

<?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

Pesan Error

Penyebaran proxy API melalui UI Edge atau API pengelolaan Edge gagal dengan pesan kesalahan ini:

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

Contoh Pesan Error

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

Contoh Screenshot Error

Pesan error Izinkan Ekstensi di Alur Klien Postingan

Penyebab

Tidak boleh memiliki kebijakan Extensionscallout di Alur PostClient. Jika kebijakan Extensioncallout ditempatkan di Flow PostClient, deployment proxy API akan gagal dengan error ini.

Diagnosis

  1. Mengidentifikasi nama kebijakan ExtensionInfo. Anda dapat menemukan informasi ini dalam pesan error. Misalnya, dalam error berikut, nama kebijakan ExtensionInfo adalah Extension Callout-1:

    In Extension Callout-1: Policy is not allowed in PostClientFlow.
  2. Periksa semua Flow PostClient di semua endpoint Proxy API tertentu tempat kegagalan terjadi. Lihat artikel Mengontrol cara proxy dieksekusi dengan flow.

    Jika Anda melihat kebijakan ExtensionInfo (ditentukan pada langkah #1) ditempatkan di Alur PostClient, itulah penyebab errornya.

    Misalnya, Alur PostClient berikut memiliki Kebijakan ExtensionInfo di dalamnya:

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

Resolusi

Pastikan kebijakan Extensioncallout tidak ditempatkan di Flow PostClient.

Untuk memperbaiki masalah yang disebutkan di atas, Anda harus memindahkan kebijakan ExtensionInfo ke Alur lainnya.

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