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 정책 예시를 수정하려면 <Connector> 요소를 API 프록시가 배포되는 특정 환경에 있는 확장 프로그램의 이름으로 설정하면 됩니다.

확장 프로그램의 이름을 확인하려면 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 관리 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,이며 확장 프로그램의 invalid 이름은 cloud_storage이고 환경 이름은 test입니다.

        Error Deploying Revision 1 to test
        In Extension Callout-1: Connector cloud_storage does not exist in environment test.
    
  2. 실패한 ExtensionCall 정책 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에서 관리자 > 확장 프로그램 으로 이동하여 확장 프로그램이 존재하는지, 이름이 Extension콜아웃 정책의 <Connector> 요소에 지정된 이름과 일치하는지 확인합니다.

    아래 스크린샷을 보면 광고 확장 cloud_storage_ext이 있지만, 위의 확장 콜아웃 정책 예에 지정된 <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>
    

해상도

확장 콜아웃 정책에서 <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.

오류 스크린샷 예시

Post Client Flow 내 확장 프로그램 허용 오류 메시지

원인

PostClient Flow에서는 ExtensionCallout 정책을 사용할 수 없습니다. ExtensionCallout 정책이 PostClient Flow에 배치되면 API 프록시 배포가 이 오류와 함께 실패합니다.

진단

  1. ExtensionCallout 정책 이름을 식별합니다. 이 정보는 오류 메시지에서 확인할 수 있습니다. 예를 들어 다음 오류에서 ExtensionCallout 정책 이름은 Extension Callout-1:입니다.

    In Extension Callout-1: Policy is not allowed in PostClientFlow.
  2. 실패가 발생한 특정 API 프록시의 모든 엔드포인트에서 모든 PostClient Flow를 검사합니다. 흐름을 사용하여 프록시 실행 방식 제어 문서를 참조하세요.

    1단계에서 결정된 ExtensionCall 정책이 PostClient Flow에 배치되어 있는 경우 이로 인해 오류가 발생합니다.

    예를 들어 다음 PostClient Flow에는 ExtensionCallout 정책이 있습니다.

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

해상도

확장 콜아웃 정책이 PostClient 흐름에 배치되면 안 됩니다.

위에 언급된 문제를 해결하려면 ExtensionCallout 정책을 다른 Flow로 이동해야 합니다.

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