<ph type="x-smartling-placeholder"></ph>
您正在查看 Apigee Edge 文档。
转到
Apigee X 文档。 信息
InvalidConnectorInstance
错误消息
通过 Edge 界面或 Edge Management API 部署 API 代理失败,并显示以下错误消息:
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>
元素缺失或设置为空值,就会发生此错误。
诊断
识别错误消息中的 ExtensionCallout 政策名称。例如,在以下错误中,ExtensionCallout 政策名称为
Extension Callout-1
:Error Saving Revision 1 In Extension Callout-1: Connector must not be empty
检查失败的 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 代理的部署将失败。
解决方法
请确保始终指定 Extension Callout 政策的 <Connector>
元素的值,且该值与组织中创建的实际扩展程序的名称匹配。
如需更正上述所示的 ExtensionCallout 政策示例,您可以将 <Connector>
元素部署到部署 API 代理的特定环境中存在的扩展名称。
如需确定扩展程序的名称,请在 Edge 界面中前往管理 >扩展程序。此处会显示您组织中所有扩展程序的名称。应在 <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>cloud_storage_ext</Connector> <Action>downloadFile</Action> <Input><![CDATA[ {} ]]></Input> <Output>context-variable-name</Output> </ConnectorCallout>
ConnectorInstanceDoesNotExists
错误消息
通过 Edge 界面或 Edge Management API 部署 API 代理失败,并显示以下错误消息:
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 代理的环境中不存在的名称,则会发生此错误。
诊断
识别 ExtensionCallout 政策名称、ExtensionCallout 政策的
<Connector>
元素中使用的无效扩展程序名称,以及发生错误的环境。您可以在错误消息中找到这些项。例如,在以下错误中,ExtensionCallout 政策名称为
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.
检查失败的 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>
验证是否已在环境中创建了扩展程序名称(在步骤 1 中确定)。
在 Edge 界面中,前往 Admin >附加信息 ,然后检查该附加信息是否存在,以及其名称是否与 ExtensionCallout 政策的
<Connector>
元素中指定的名称一致。请注意,在下面的屏幕截图中,附加信息
cloud_storage_ext
存在,但它与上面所示 ExtensionCallout 政策示例中指定的<Connector>
元素不匹配:由于
<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 界面或 Edge Management API 部署 API 代理失败,并显示以下错误消息:
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.
错误屏幕截图示例
原因
如果 ExtensionCallout 政策中的 <Action>
元素缺失或设置为空值,就会发生此错误。
诊断
识别 ExtensionCallout 政策名称。您可以在错误消息中找到此信息。例如,在以下错误中,ExtensionCallout 政策名称为
Extension Callout-1:
Error Saving Revision 1 In Extension Callout-1: Action must not be empty.
检查失败的 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 Management API 部署 API 代理失败,并显示以下错误消息:
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.
错误屏幕截图示例
原因
PostClient Flow 中不得包含 ExtensionCallout 政策。如果 PostClient Flow 中存在 ExtensionCallout 政策,则 API 代理的部署将失败并显示此错误。
诊断
识别 ExtensionCallout 政策名称。您可以在错误消息中找到此信息。例如,在以下错误中,ExtensionCallout 政策名称为
Extension Callout-1:
In Extension Callout-1: Policy is not allowed in PostClientFlow.
检查发生故障的特定 API 代理的所有端点中的所有 PostClient Flow。请参阅控制如何使用流执行代理一文。
如果您发现 ExtensionCallout 政策(在第 1 步中确定)位于 PostClient 流中,那么这就是导致错误的原因。
例如,以下 PostClient Flow 中包含 ExtensionCallout Policy:
... <PostClientFlow> <Request/> <Response> <Step> <Name>Extension-Callout-1</Name> </Step> </Response> </PostClientFlow> ...
解决方法
确保 PostClient Flow 中不存在 ExtensionCallout 政策。
要解决上述问题,您应将 ExtensionCallout 政策移至其他流。
... <PreFlow name="PreFlow"> <Request/> <Response> <Step> <Name>Extension-Callout-1</Name> </Step> </Response> </PreFlow> ...