額外資訊摘要政策部署錯誤

查看 Apigee Edge 說明文件。
前往 Apigee X說明文件
資訊

InvalidConnectorInstance

錯誤訊息

透過 Edge UI 或 Edge Management API 部署 API Proxy 會失敗,並顯示以下錯誤訊息:

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.

錯誤螢幕截圖

無效的連接器執行個體錯誤訊息

原因

如果 Extension callout 政策中的 <Connector> 元素缺少或設為空白值,就會發生這個錯誤。

診斷

  1. 找出錯誤訊息中的 Extension callout 政策名稱。舉例來說,在下列錯誤中,Extension 摘要政策的名稱為 Extension Callout-1

    Error Saving Revision 1
    In Extension Callout-1: Connector must not be empty
  2. 檢查未通過的 Extension callout 政策 XML,並確認有 <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 政策範例,您可以將 <Connector> 元素設為部署 API Proxy 特定環境中的擴充功能名稱。

如要找出擴充功能的名稱,可以在 Edge UI 中依序前往「管理」>「管理員」擴充功能:貴機構中所有擴充功能的名稱都會顯示在那裡。請在 <Connector> 元素中設定擴充功能名稱。

在 Edge UI 中查看所有擴充功能的名稱。

以下是在 <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

錯誤訊息

透過 Edge UI 或 Edge Management API 部署 API Proxy 會失敗,並顯示以下錯誤訊息:

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.

錯誤螢幕截圖

連接器執行個體不存在的錯誤訊息

原因

如果 Extension callout 政策中的 <Connector> 元素設為名稱不存在,但在部署 API Proxy 的環境中,就會發生這個錯誤。

診斷

  1. 找出 Extension callout 政策的名稱、擴充功能呼叫政策的 <Connector> 元素中使用的無效額外資訊名稱,以及發生錯誤的環境。您可以在錯誤訊息中找到以上所有項目。

    舉例來說,在下列錯誤中,擴充功能摘要政策名稱為 Extension Callout-1,invalid 的副檔名為 cloud_storage,環境名稱為 test

        Error Deploying Revision 1 to test
        In Extension Callout-1: Connector cloud_storage does not exist in environment test.
  2. 檢查未通過的 Extension callout 政策 XML,並確認 <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. 確認是否已在環境中建立擴充功能名稱 (如步驟 1 所述)。

    在 Edge UI 中,依序前往「Admin」> ,檢查是否存在額外資訊,並確認名稱與「Extension 摘要」政策中 <Connector> 元素中指定的名稱相符。

    請注意,在下方螢幕截圖中,cloud_storage_ext 擴充功能已存在,但與上述範例 ExtensionCall 政策範例中指定的 <Connector> 元素不相符:

    在 Edge UI 中查看所有擴充功能的名稱。

    由於 <Connector> 元素中指定的擴充功能名稱不存在,您會收到部署錯誤訊息:

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

解析度

確認已在 Extension callout 政策的 <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>

InvalidAction

錯誤訊息

透過 Edge UI 或 Edge Management API 部署 API Proxy 會失敗,並顯示以下錯誤訊息:

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.

錯誤螢幕截圖

無效的動作錯誤訊息

原因

如果 Extension callout 政策中的 <Action> 元素缺少或設為空白值,就會發生這個錯誤。

診斷

  1. 找出額外資訊摘要政策名稱。你可以在錯誤訊息中找到這項資訊。舉例來說,在下列錯誤中,Extension callout 政策的名稱為 Extension Callout-1:

        Error Saving Revision 1
        In Extension Callout-1: Action must not be empty.
  2. 檢查失敗的 Extension callout 政策 XML,並驗證是否已在 <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>

解析度

確認 ExtensionCall 政策中的 <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>downloadFile</Action>
    <Input><![CDATA[
         {}
     ]]></Input>
    <Output>context-variable-name</Output>
</ConnectorCallout>

AllowExtensionsInPostClientFlow

錯誤訊息

透過 Edge UI 或 Edge Management API 部署 API Proxy 會失敗,並顯示以下錯誤訊息:

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.

錯誤螢幕截圖

「允許在 Post Client 流程中使用擴充功能」錯誤訊息

原因

禁止在 PostClient 流程中加入 Extension callout 政策。如果將 Extension callout 政策放在 PostClient 流程中,API Proxy 部署作業就會失敗,並出現這個錯誤。

診斷

  1. 找出額外資訊摘要政策名稱。你可以在錯誤訊息中找到這項資訊。舉例來說,在下列錯誤中,Extension callout 政策的名稱為 Extension Callout-1:

    In Extension Callout-1: Policy is not allowed in PostClientFlow.
  2. 檢查發生錯誤的特定 API Proxy 上所有端點中的所有 PostClient 流程。請參閱「控制 Proxy 使用流程的方式」一文。

    如果您發現 ExtensionCall 政策 (定義於步驟 1) 中位於 PostClient 流程中,那麼這是導致錯誤的原因。

    舉例來說,下列 PostClient 流程內含 ExtensionCall Policy:

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

解析度

確認 Extension callout 政策並未放入 PostClient 流程。

如要修正上述問題,請將額外資訊摘要政策移至任何其他流程。

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