Khắc phục sự cố khi triển khai chính sách Chú thích tiện ích

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến Tài liệu về Apigee X.
thông tin

InvalidConnectorInstance

Thông báo Lỗi

Thông báo lỗi sau không triển khai được proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge:

Error Saving Revision revision_number
In policy_name: Connector must not be empty.

Ví dụ về thông báo lỗi

Error Saving Revision 1
In Extension Callout-1: Connector must not be empty.

Ví dụ về ảnh chụp màn hình báo lỗi

Thông báo lỗi về Phiên bản trình kết nối không hợp lệ

Nguyên nhân

Lỗi này xảy ra nếu phần tử <Connector> trong Chính sách chú thích phần mở rộng bị thiếu hoặc được đặt thành giá trị trống.

Chẩn đoán

  1. Xác định tên Chính sách về tiện ích chú thích trong thông báo lỗi. Ví dụ: trong lỗi sau, tên chính sách của tiện ích chú thích mở rộng là Extension Callout-1:

    Error Saving Revision 1
    In Extension Callout-1: Connector must not be empty
  2. Kiểm tra tệp XML của chính sách ExtensionAnnotation bị lỗi và xác minh xem phần tử <Connector> có tồn tại và không trống. Ví dụ: Trong chính sách bên dưới, phần tử <Connector> bị trống và không chứa tên tiện ích:

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

Vì phần tử <Connector> trống nên việc triển khai Proxy API không thành công.

Độ phân giải

Đảm bảo rằng giá trị của phần tử <Connector> của chính sách Chú thích của phần mở rộng luôn được chỉ định và khớp với tên của phần mở rộng thực tế đã tạo trong tổ chức.

Để sửa chính sách ExtensionAnnotation ví dụ ở trên, bạn có thể đặt phần tử <Connector> thành tên của tiện ích tồn tại trong môi trường cụ thể nơi triển khai Proxy API.

Để xác định tên của tiện ích, trong giao diện người dùng Edge, bạn có thể chuyển đến mục Quản trị > Tiện ích. Tên của tất cả các tiện ích trong tổ chức của bạn sẽ hiển thị ở đó. Bạn phải đặt tên tiện ích trong phần tử <Connector>.

Xem tên của tất cả tiện ích trong giao diện người dùng Edge.

Dưới đây là ví dụ trong đó Tên tiện ích được đặt đúng cách trong phần tử <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

Thông báo Lỗi

Thông báo lỗi sau không triển khai được proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge:

Error Deploying Revision revision_number to environment
In policy_name: Connector <extension_name> does not exist in environment environment.

Ví dụ về thông báo lỗi

Error Deploying Revision 1 to test
In Extension Callout-1: Connector cloud_storage does not exist in environment test.

Ví dụ về ảnh chụp màn hình báo lỗi

Thông báo lỗi Phiên bản trình kết nối Không tồn tại

Nguyên nhân

Lỗi này xảy ra nếu bạn đặt phần tử <Connector> trong Chính sách tiện ích chú thích thành tên không tồn tại trong môi trường đang triển khai proxy API.

Chẩn đoán

  1. Hãy xác định tên chính sách Phần mở rộng về chú thích, tên của Tiện ích không hợp lệ được dùng trong phần tử <Connector> của chính sách Chú thích mở rộng và môi trường xảy ra lỗi. Bạn có thể tìm thấy tất cả các mục này trong thông báo lỗi.

    Ví dụ: trong lỗi sau, tên chính sách của tiện ích chú thích mở rộng là Extension Callout-1,invalid của Tiện ích là cloud_storage và tên môi trường là test:

        Error Deploying Revision 1 to test
        In Extension Callout-1: Connector cloud_storage does not exist in environment test.
    
  2. Kiểm tra tệp XML của chính sách ExtensionAnnotation bị lỗi và xác minh xem tên tiện ích được chỉ định cho phần tử <Connector> có khớp với tên trong thông báo lỗi hay không.

    Trong ví dụ này, tên tiện ích được chỉ định trong phần tử <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. Xác minh xem tên tiện ích có được tạo trong môi trường hay không (được xác định trong bước số 1).

    Trong giao diện người dùng Edge, hãy chuyển đến mục Quản trị > Tiện ích và kiểm tra xem tiện ích có tồn tại và tên tiện ích khớp với tên được chỉ định trong phần tử <Connector> trong chính sách Tiện ích chú thích mở rộng hay không.

    Hãy lưu ý rằng trong ảnh chụp màn hình bên dưới, tiện ích cloud_storage_ext đã tồn tại, nhưng không khớp với phần tử <Connector> được chỉ định trong chính sách ExtensionAnnotation ví dụ ở trên:

    Xem tên của tất cả tiện ích trong giao diện người dùng Edge.

    Vì tên tiện ích được chỉ định trong phần tử <Connector> không tồn tại, nên bạn sẽ gặp lỗi triển khai:

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

Độ phân giải

Hãy đảm bảo bạn đã tạo phần mở rộng được chỉ định trong phần tử <Connector> của chính sách Phần mở rộng về chú thích và chỉ định tên chính xác.

Tham khảo Hướng dẫn: Sử dụng tiện ích để biết thông tin về cách tạo tiện ích.

Để khắc phục ví dụ trên, hãy sửa tên cho khớp với phần mở rộng thực tế:

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

Thông báo Lỗi

Thông báo lỗi sau không triển khai được proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge:

Error Saving Revision revision_number
In policy_name: Action must not be empty.

Ví dụ về thông báo lỗi

Error Saving Revision 1
In Extension Callout-1: Action must not be empty.

Ví dụ về ảnh chụp màn hình báo lỗi

Thông báo lỗi Hành động không hợp lệ

Nguyên nhân

Lỗi này xảy ra nếu phần tử <Action> trong Chính sách chú thích phần mở rộng bị thiếu hoặc được đặt thành giá trị trống.

Chẩn đoán

  1. Xác định tên chính sách Phần mở rộng về chú thích. Bạn có thể tìm thấy thông tin này trong thông báo lỗi. Ví dụ: trong lỗi sau, tên chính sách của tiện ích chú thích mở rộng là Extension Callout-1:

        Error Saving Revision 1
        In Extension Callout-1: Action must not be empty.
    
  2. Kiểm tra tệp XML của chính sách ExtensionAnnotation bị lỗi và xác minh xem hành động có được chỉ định trong phần tử <Action> hay không. Nếu phần tử <Action> bị thiếu hoặc trống thì đó là nguyên nhân gây ra lỗi.

    Trong ví dụ này, phần tử <Action> bị trống:

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

Độ phân giải

Đảm bảo phần tử <Action> luôn được chỉ định và không được để trống trong chính sách Phần mở rộng về chú thích.

Tham khảo bài viết Hướng dẫn: Sử dụng phần mở rộng để biết thông tin về cách tạo một phần mở rộng và cách sử dụng phần mở rộng đó trong chính sách bằng phần tử <Action> chính xác.

Để khắc phục vấn đề nêu trên, hãy chỉ định thao tác chính xác cho tiện ích:

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

Thông báo Lỗi

Thông báo lỗi sau không triển khai được proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge:

Error Deploying Revision revision_number to environment
In policy_name: Policy is not allowed in PostClientFlow.

Ví dụ về thông báo lỗi

Error Deploying Revision 1 to test
In Extension Callout-1: Policy is not allowed in PostClientFlow.

Ví dụ về ảnh chụp màn hình báo lỗi

Thông báo lỗi Cho phép tiện ích trong luồng ứng dụng sau

Nguyên nhân

Bạn không được phép có chính sách Chú thích mở rộng trong Luồng PostClient. Nếu bạn đặt Chính sách Tiện ích chú thích trong Luồng PostClient thì lỗi này sẽ không triển khai được proxy API.

Chẩn đoán

  1. Xác định tên chính sách Phần mở rộng về chú thích. Bạn có thể tìm thấy thông tin này trong thông báo lỗi. Ví dụ: trong lỗi sau, tên chính sách của tiện ích chú thích mở rộng là Extension Callout-1:

    In Extension Callout-1: Policy is not allowed in PostClientFlow.
  2. Kiểm tra mọi Luồng PostClient trong tất cả các điểm cuối của Proxy API cụ thể nơi xảy ra lỗi. Vui lòng tham khảo bài viết Kiểm soát cách proxy thực thi với flow.

    Nếu bạn nhận thấy chính sách ExtensionAnnotation (được xác định ở bước #1) được đặt trong Luồng PostClient thì đó là nguyên nhân gây ra lỗi.

    Ví dụ: Luồng PostClient sau đây có Chính sách Chú thích mở rộng trong đó:

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

Độ phân giải

Đảm bảo rằng chính sách ExtensionAnnotation không được đặt trong Luồng PostClient.

Để khắc phục vấn đề nêu trên, bạn nên di chuyển chính sách ExtensionAnnotation sang bất kỳ Quy trình nào khác.

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