Tạo chuỗi các proxy API với nhau

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

Bạn có thể chỉ định rằng một proxy là điểm cuối mục tiêu của một proxy khác, nhờ đó kết nối hiệu quả hai proxy trong một chuỗi proxy. Việc liên kết các proxy theo cách này có thể giúp bạn tránh được một bước nhảy mạng và do đó cải thiện hiệu suất tổng thể.

Với tính năng liên kết proxy, bạn chỉ định rằng một proxy là điểm cuối mục tiêu cục bộ của proxy kia. Thay vì sử dụng phần tử HTTPTargetConnection để gọi đến proxy thứ hai, bạn sẽ sử dụng phần tử LocalTargetConnection.

<LocalTargetConnection>
    <APIProxy>myproxy2</APIProxy>
    <ProxyEndpoint>default</ProxyEndpoint>
</LocalTargetConnection>

Bạn có thể thấy tính năng chuỗi proxy hữu ích khi có một proxy cung cấp một số chức năng rời rạc ở cấp thấp mà các proxy khác sẽ sử dụng. Ví dụ: một proxy hiển thị các thao tác tạo/đọc/cập nhật/xoá bằng một kho dữ liệu phụ trợ có thể là proxy mục tiêu cho nhiều proxy khác hiển thị dữ liệu cho các ứng dụng.

Video: Xem một video ngắn để tìm hiểu thêm về tính năng liên kết proxy API.

Cách hoạt động của tính năng liên kết proxy

Chuỗi proxy sử dụng một kết nối cục bộ để giảm thiểu chi phí mạng khi gọi một proxy từ một proxy khác. Kết nối cục bộ này hiệu quả hơn vì nó bỏ qua các tính năng mạng như bộ cân bằng tải, bộ định tuyến và bộ xử lý thông báo.

Sau đây minh hoạ sự khác biệt giữa việc kết nối các proxy bằng HTTPTargetConnectionLocalTargetConnection (chuỗi proxy):

Bạn kết nối các proxy bằng cách chỉ định một proxy là điểm cuối mục tiêu cục bộ của proxy kia. Bạn có thể tạo mối kết nối cục bộ giữa các proxy theo hai cách:

  • Bằng cách chỉ định tên của proxy đích và tên ProxyEndpoint
  • Bằng cách chỉ định một đường dẫn đến điểm cuối đích của proxy

Bạn kết nối các proxy đích trong cấu hình TargetEndpoint bằng cách sử dụng phần tử LocalTargetConnection, như mô tả bên dưới.

Kết nối các proxy theo tên proxy

Bạn có thể chỉ định proxy đích theo tên. Bạn có thể thấy rằng điều này hữu ích nhất khi bạn tạo kết nối ngay từ đầu và cùng nhau phát triển các proxy. Nếu bạn không biết tên (hoặc tên có thể thay đổi), hãy cân nhắc việc kết nối với đường dẫn điểm cuối của proxy mục tiêu, như mô tả bên dưới.

Khi kết nối với một proxy đích theo tên, bạn sẽ chỉ định tên của proxy và tên của ProxyEndpoint.

Ví dụ sau đây chỉ định một proxy đích có tên là data-manager, cùng với tên ProxyEndpoint do data-manager hiển thị. Để biết thông tin tham khảo, hãy xem Tài liệu tham khảo về cấu hình proxy API.

<TargetEndpoint name="datamanager">
    <PreFlow name="PreFlow">
        <!-- PreFlow policies -->
    </PreFlow>
    <PostFlow name="PostFlow">
        <!-- PostFlow policies -->
    </PostFlow>
    <LocalTargetConnection>
        <APIProxy>data-manager</APIProxy>
        <ProxyEndpoint>default</ProxyEndpoint>
    </LocalTargetConnection>
</TargetEndpoint>

Kết nối các proxy theo đường dẫn

Bạn có thể chỉ định proxy đích theo đường dẫn điểm cuối. Bạn có thể muốn thực hiện theo cách này khi không biết tên của proxy hoặc khi tên có thể thay đổi.

Nếu proxy của bạn chỉ là đối tượng sử dụng proxy mục tiêu (chẳng hạn như khi bạn không phát triển cả hai), thì đường dẫn có thể là cách kết nối đáng tin cậy nhất. Ví dụ: nếu một nhóm khác phát triển và duy trì proxy mà bạn đang kết nối, thì bạn có thể muốn kết nối bằng một đường dẫn điểm cuối đáng tin cậy.

Ví dụ sau đây chỉ định một proxy mục tiêu tại /v1/streetcarts/foodcarts/data-manager, trong đó giả định rằng máy chủ giống với proxy hiện tại. Để biết thông tin tham khảo, hãy xem Tài liệu tham khảo về cấu hình proxy API.

<TargetEndpoint name="datamanager">
    <PreFlow name="PreFlow">
        <!-- PreFlow policies -->
    </PreFlow>
    <PostFlow name="PostFlow">
        <!-- PostFlow policies -->
    </PostFlow>
    <LocalTargetConnection>
        <Path>/v1/streetcarts/foodcarts/data-manager</Path> 
    </LocalTargetConnection>
</TargetEndpoint>

Kết nối các proxy với bảng điều khiển quản lý

Bạn có thể tạo các kết nối chuỗi proxy bằng bảng điều khiển quản lý Edge.

  1. Mở proxy sẽ sử dụng proxy mục tiêu.
  2. Trong Navigator (Trình điều hướng), hãy nhấp vào dấu cộng bên cạnh Target Endpoints (Điểm cuối mục tiêu).
  3. Trong hộp thoại Điểm cuối mục tiêu mới, hãy nhập tên của điểm cuối mục tiêu.
  4. Bên dưới hộp Target Endpoint Name (Tên điểm cuối mục tiêu), hãy chọn một trong các mục sau:
    • Proxy Chaining (Chuỗi proxy) để chọn trong danh sách các proxy đã có trong tổ chức và môi trường.
      1. Trong trình đơn thả xuống Tên proxy, hãy chọn proxy mục tiêu.
      2. Trong hộp Proxy Endpoint (Điểm cuối của proxy), hãy nhập đường dẫn điểm cuối của proxy mục tiêu mà bạn muốn kết nối.
    • Path Chaining (Liên kết đường dẫn) để nhập đường dẫn cơ sở của proxy mục tiêu, chẳng hạn như /mypath/myproxy/myendpoint.
  5. Nhấp vào Thêm.

Các sản phẩm proxy được liên kết, API và bảo mật

Liên kết proxy phù hợp nhất cho những trường hợp cả hai proxy đều nằm trong cùng một sản phẩm API. Theo mặc định, cả hai đều có sẵn cho khách hàng. Apigee hiện không hỗ trợ việc kết hợp proxy thứ hai trong một sản phẩm API riêng biệt mà ứng dụng khách không được phép truy cập.

Nếu bạn phải bảo mật proxy thứ hai trước các yêu cầu trực tiếp của ứng dụng, hãy cân nhắc thêm logic để proxy thứ hai kiểm tra địa chỉ IP của ứng dụng. Trong trường hợp cuộc gọi được thực hiện thông qua việc liên kết, địa chỉ IP sẽ là địa chỉ IP cục bộ. Mã của bạn có thể xác thực rằng mã đó là mã cục bộ trước khi cho phép tiếp tục xử lý. Hãy xem chính sách Kiểm soát quyền truy cập để biết một cách thực hiện việc này.