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

您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件。
info

InvalidConnectorInstance

錯誤訊息

透過 Edge UI 或 Edge 管理 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.

錯誤螢幕截圖範例

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

原因

如果 ExtensionCallout 政策中的 <Connector> 元素遺失或設為空值,就會發生這個錯誤。

診斷

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

    Error Saving Revision 1
    In Extension Callout-1: Connector must not be empty
  2. 檢查失敗的 ExtensionCallout 政策 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> 元素值,且該值與機構中建立的實際擴充功能名稱相符。

如要修正上述 ExtensionCallout 政策範例,您可以將 <Connector> 元素設為擴充功能的名稱,該擴充功能位於部署 API Proxy 的特定環境中。

如要判斷擴充功能的名稱,請在 Edge UI 中依序前往「Admin」>「Extensions」。系統會顯示貴機構所有擴充功能的名稱。擴充功能名稱應在 <Connector> 元素中設定。

在 Edge 使用者介面中查看所有擴充功能的名稱。

以下範例在 <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 管理 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.

錯誤螢幕截圖範例

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

原因

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

診斷

  1. 找出 ExtensionCallout 政策名稱、ExtensionCallout 政策 <Connector> 元素中使用的無效擴充功能名稱,以及發生錯誤的環境。錯誤訊息中會列出所有這些項目。

    舉例來說,在下列錯誤中,ExtensionCallout 政策名稱為「invali」Extension Callout-1,d ,擴充功能名稱為「cloud_storage」,環境名稱為「test」:

        Error Deploying Revision 1 to test
        In Extension Callout-1: Connector cloud_storage does not exist in environment test.
  2. 檢查失敗的 ExtensionCallout 政策 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」>「Extensions」 ,檢查擴充功能是否存在,以及名稱是否與 ExtensionCallout 政策中 <Connector> 元素指定的名稱相符。

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

    在 Edge 使用者介面中查看所有擴充功能的名稱。

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

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

解析度

請確認已建立 ExtensionCallout 政策 <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 管理 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.

錯誤螢幕截圖範例

「Invalid Action」錯誤訊息

原因

如果 ExtensionCallout 政策中的 <Action> 元素遺失或設為空值,就會發生這個錯誤。

診斷

  1. 找出 ExtensionCallout 政策名稱。這項資訊會顯示在錯誤訊息中。舉例來說,在下列錯誤中,ExtensionCallout 政策名稱為 Extension Callout-1:

        Error Saving Revision 1
        In Extension Callout-1: Action must not be empty.
  2. 檢查失敗的 ExtensionCallout 政策 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>

解析度

請確保 ExtensionCallout 政策中一律指定 <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 使用者介面或 Edge 管理 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.

錯誤螢幕截圖範例

Allow Extensions In Post Client Flow 錯誤訊息

原因

PostClient Flow 中不得有擴充功能註解政策。如果 ExtensionCallout 政策位於 PostClient Flow 中,API Proxy 的部署作業就會失敗,並顯示這項錯誤。

診斷

  1. 找出 ExtensionCallout 政策名稱。這項資訊會顯示在錯誤訊息中。舉例來說,在下列錯誤中,ExtensionCallout 政策名稱為 Extension Callout-1:

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

    如果您發現 ExtensionCallout 政策 (在步驟 1 中判斷) 位於 PostClient Flow 中,這就是錯誤原因。

    舉例來說,下列 PostClient Flow 包含 ExtensionCallout 政策:

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

解析度

請確保 ExtensionCallout 政策未放置在 PostClient Flow 中。

如要修正上述問題,請將 ExtensionCallout 政策移至任何其他流程。

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