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

現在、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] > [Extensions] に移動します。組織内のすべての拡張機能の名前がここに表示されます。拡張機能名は <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 フローを調べます。フローによるプロキシの実行方法の制御をご覧ください。

    手順 1 で決定した ExtensionCallout ポリシー(手順 1 で決定)が PostClient Flow に配置されていることに気付いた場合、これがエラーの原因です。

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

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

解像度

ExtensionCallout ポリシーが PostClient フローに含まれていないことを確認します。

上記の問題を解決するには、ExtensionCallout ポリシーを他の Flow に移動する必要があります。

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