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.
Truy cập vào tài liệu Apigee X.
thông tin

InvalidConnectorInstance

Thông báo Lỗi

Việc triển khai proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge không thành công và xuất hiện thông báo lỗi sau:

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

Thông báo lỗi mẫu

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

Ảnh chụp màn hình ví dụ về 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 ExtensionCallout bị thiếu hoặc được đặt thành một giá trị trống.

Chẩn đoán

  1. Xác định tên chính sách ExtensionCallout trong thông báo lỗi. Ví dụ: trong lỗi sau, tên chính sách ExtensionCallout là Extension Callout-1:

    Error Saving Revision 1
    In Extension Callout-1: Connector must not be empty
  2. Kiểm tra tệp XML chính sách ExtensionCallout không thành công và xác minh xem phần tử <Connector> có xuất hiện và không trống hay không. Ví dụ: trong phần tử <Connector> bên dưới, chính sách này không có nội dung và không chứa tên của 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 API Proxy sẽ không thành công.

Độ phân giải

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

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

Để 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ẽ xuất hiện ở đó. Bạn nên đặt tên tiện ích trong phần tử <Connector>.

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

Dưới đây là ví dụ có 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

Việc triển khai proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge không thành công và xuất hiện thông báo lỗi sau:

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

Thông báo lỗi mẫu

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

Ảnh chụp màn hình ví dụ về lỗi

Thông báo lỗi Connector Instance Does Not exist (Không tồn tại phiên bản trình kết nối)

Nguyên nhân

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

Chẩn đoán

  1. Xác định tên chính sách ExtensionCallout, tên Extension không hợp lệ được dùng trong phần tử <Connector> của chính sách ExtensionCallout 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 ExtensionCallout là Extension Callout-1,invalid , tên của Extension 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 XML chính sách ExtensionCallout không thành công 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> là 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 tạo trong môi trường hay chưa (xác định ở bước 1).

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

    Lưu ý trong ảnh chụp màn hình bên dưới rằng 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 ExtensionCallout mẫu nêu trên:

    Xem tên của tất cả cá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

Đảm bảo rằng tiện ích được chỉ định trong phần tử <Connector> của chính sách ExtensionCallout đã được tạo và tên được chỉ định chính xác.

Hãy tham khảo Hướng dẫn: Sử dụng các 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 sao cho khớp với tiện ích 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

Việc triển khai proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge không thành công và xuất hiện thông báo lỗi sau:

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

Thông báo lỗi mẫu

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

Ảnh chụp màn hình ví dụ về lỗi

Thông báo lỗi Thao tác 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 ExtensionCallout bị thiếu hoặc được đặt thành một giá trị trống.

Chẩn đoán

  1. Xác định tên chính sách ExtensionCallout. 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 ExtensionCallout là Extension Callout-1:

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

    Trong ví dụ này, phần tử <Action> 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 rằng phần tử <Action> luôn được chỉ định và không được để trống trong chính sách ExtensionCallout.

Hãy tham khảo Hướng dẫn: Sử dụng các tiện ích để biết thông tin về cách tạo tiện ích và cách sử dụng tiện ích đó 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

Việc triển khai proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge không thành công và xuất hiện thông báo lỗi sau:

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

Thông báo lỗi mẫu

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

Ảnh chụp màn hình ví dụ về lỗi

Thông báo lỗi Allow Extensions In Post Client Flow (Cho phép tiện ích trong luồng sau khi gửi yêu cầu của ứng dụng)

Nguyên nhân

Bạn không được phép có chính sách ExtensionCallout trong PostClient Flow. Nếu bạn đặt chính sách ExtensionCallout trong PostClient Flow, thì việc triển khai proxy API sẽ không thành công kèm theo lỗi này.

Chẩn đoán

  1. Xác định tên chính sách ExtensionCallout. 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 ExtensionCallout là Extension Callout-1:

    In Extension Callout-1: Policy is not allowed in PostClientFlow.
  2. Kiểm tra tất cả PostClient Flow trong mọi điểm cuối của API Proxy 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 một proxy thực thi bằng các luồng.

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

    Ví dụ: PostClient Flow sau đây có ExtensionCallout Policy:

        ...
        <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 ExtensionCallout không được đặt trong PostClient Flow.

Để khắc phục vấn đề nêu trên, bạn nên di chuyển chính sách ExtensionCallout sang một Flow bất kỳ khác.

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