Extension Callout ポリシーのデプロイエラーのトラブルシューティング

<ph type="x-smartling-placeholder"></ph> 現在、Apigee Edge のドキュメントが表示されています。
Apigee X のドキュメント
詳細

InvalidConnectorInstance

エラー メッセージ

Edge UI または Edge 管理 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> 要素がないか、空の値が設定されている場合に発生します。

診断

  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 プロキシのデプロイは失敗します。

解決策

Extension Callout ポリシーの <Connector> 要素の値が常に指定され、組織で作成された実際の拡張機能の名前と一致していることを確認してください。

上記の ExtensionCallout ポリシーの例を修正するには、API プロキシがデプロイされている特定の環境に存在する拡張機能の名前を <Connector> 要素に設定します。

拡張機能の名前を確認するには、Edge UI で [Admin >拡張機能。ここには、組織内のすべての拡張機能の名前が表示されます。拡張機能名は <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 管理 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 プロキシがデプロイされている環境に存在しない名前が設定されている場合に発生します。

診断

  1. ExtensionCallout ポリシー名と、ExtensionCallout ポリシーの <Connector> 要素で使用されている無効な拡張機能名、エラーが発生した環境を特定します。これらはすべてエラー メッセージで確認できます。

    たとえば、次のエラーでは、ExtensionCallout ポリシー名は Extension Callout-1,、無効な拡張機能名は cloud_storage、環境名は test です。d

        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 UI ですべての拡張機能の名前を表示します。

    <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 プロキシのデプロイに失敗すると、次のエラー メッセージが表示されます。

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> 要素がないか、空の値が設定されている場合に発生します。

診断

  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 UI または Edge 管理 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 フローで拡張機能が許可されている場合のエラー メッセージ

原因

PostClient フローに ExtensionCallout ポリシーが含まれることは禁止されています。ExtensionCallout ポリシーが PostClient フローに含まれている場合、API プロキシのデプロイはこのエラーで失敗します。

診断

  1. ExtensionCallout ポリシー名を確認します。この情報はエラー メッセージから見つけることができます。たとえば、次のエラーでは、ExtensionCallout ポリシー名は Extension Callout-1: です。

    In Extension Callout-1: Policy is not allowed in PostClientFlow.
  2. エラーが発生した特定の API プロキシのすべてのエンドポイント内のすべての PostClient フローを調べます。フローによるプロキシの実行方法の制御をご覧ください。

    ExtensionCallout ポリシー(手順 1 で特定)が PostClient フローに配置されている場合は、それがエラーの原因です。

    たとえば、次の PostClient フローには ExtensionCallout ポリシーが含まれています。

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