Tham chiếu cấu hình proxy API

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

Là một nhà phát triển làm việc với Apigee Edge, các hoạt động phát triển chính của bạn bao gồm định cấu hình proxy API hoạt động dưới dạng proxy cho API hoặc dịch vụ phụ trợ. Tài liệu này là một tài liệu tham khảo về tất cả các phần tử cấu hình có sẵn cho bạn khi tạo proxy API.

Nếu đang tìm hiểu cách tạo proxy API, bạn nên bắt đầu với chủ đề Xây dựng một API đơn giản proxy.

Các cách phổ biến nhất để chỉnh sửa cấu hình proxy là:

Phát triển cục bộ cấu hình proxy

Bạn có thể tải xuống các cấu hình proxy của mình để có thể chỉnh sửa chúng trên máy cục bộ. Thời gian khi bạn hoàn tất, sau đó tải kết quả lên Edge. Phương pháp này cho phép bạn tích hợp proxy các cấu hình của bạn vào kiểm soát nguồn, tạo phiên bản và quy trình làm việc chia sẻ khác. Ngoài ra, bằng cách làm việc trên cấu hình proxy cục bộ, bạn có thể sử dụng trình chỉnh sửa và xác thực XML của riêng mình và các công cụ lập mô hình tuỳ chỉnh.

Phần này mô tả cách sử dụng giao diện người dùng để tải xuống, chỉnh sửa cấu trúc proxy hiện có, sau đó tải lại lên Edge để triển khai. Bạn cũng có thể sử dụng apigeetool để tải xuống và triển khai cấu hình proxy mới (bằng cách sử dụng fetchproxydeployproxy.)

Cách chỉnh sửa cấu hình proxy cục bộ bằng giao diện người dùng:

  1. Tải cấu hình proxy hiện tại xuống trong giao diện người dùng Edge. (Trong các proxy API khung hiển thị, chọn Project (Dự án) > Tải bản sửa đổi xuống.)
  2. Trên máy cục bộ, hãy tạo một thư mục mới và mở rộng tệp ZIP đã tải xuống thành nó.

    Để mở rộng tệp ZIP, bạn có thể sử dụng một tiện ích như unzip, như ví dụ cho thấy:

    mkdir myappdir
    unzip ./my-app_app_rev3_2019_04_20.zip -d myappdir

    Nội dung mở rộng của tệp ZIP phải giống với cấu trúc được mô tả trong Cấu trúc proxy API.

  3. Chỉnh sửa các tệp nguồn nếu cần. Để có nội dung mô tả về các tệp nguồn trong proxy cấu hình, xem Tệp cấu hình và cấu trúc thư mục của proxy API.

    Ví dụ: để bật giám sát sức khoẻ ở proxy API của bạn, hãy chỉnh sửa tệp cấu hình TargetEndpoint trong Thư mục /apiproxy/targets/. Tệp mặc định trong thư mục này là default.xml, mặc dù có thể có các tệp với tên khác nếu bạn sử dụng mục tiêu có điều kiện.

    Trong trường hợp này, nếu tệp cấu hình TargetEndpoint và thư mục của tệp đó không tồn tại, tạo chúng.

  4. Sau khi hoàn tất việc chỉnh sửa các tệp cấu hình proxy, hãy đảm bảo bạn lưu các thay đổi của mình.
  5. Thay đổi sang thư mục mới mà bạn đã tạo khi mở rộng tệp ZIP (thư mục gốc của các tệp cấu hình mở rộng).

    Ví dụ: nếu bạn đã mở rộng các tệp vào thư mục /myappdir, hãy thay đổi thành thư mục đó, như trong ví dụ sau đây:

    cd myappdir

    Bạn nên đổi sang thư mục này trước khi lưu trữ lại các tệp cấu hình proxy vì bạn không muốn đưa thư mục /myappdir vào tệp ZIP. Thư mục cấp cao nhất trong tệp ZIP phải là /apiproxy.

  6. Lưu trữ lại các tệp cấu hình proxy, bao gồm cả các tệp mới hoặc tệp đã thay đổi. Bạn có thể sử dụng phần mềm tiện ích như zip, trong ví dụ sau đây:
    zip my-new-proxy.zip -r .

    Thư mục cấp cao nhất trong tệp ZIP phải là /apiproxy.

    Không có yêu cầu đặc biệt nào cho tên tệp ZIP. Ví dụ: bạn không cần tăng số bản sửa đổi hoặc chỉ định ngày trong tên tệp, nhưng làm điều này có thể hữu ích cho việc gỡ lỗi hoặc kiểm soát nguồn.

    Edge tăng số bản sửa đổi của cấu hình proxy mới cho bạn khi bạn tải lên nó.

  7. Tải cấu hình proxy mới lên bằng giao diện người dùng Edge. (Trong Proxy API khung hiển thị, chọn Project (Dự án) > Tải Bản sửa đổi mới lên.)

    Nếu bạn gặp một lỗi như Bundle is invalid. Empty bundle., hãy đảm bảo rằng Thư mục cấp cao nhất của tệp ZIP là /apiproxy. Nếu không, hãy lưu trữ lại các tệp cấu hình proxy từ gốc của thư mục mở rộng.

    Sau khi tải cấu hình proxy mới lên, Edge tăng số bản sửa đổi và hiển thị báo cáo đó trong chế độ xem Revision Summary (Tóm tắt về bản sửa đổi).

    Edge không triển khai bản sửa đổi mới cho bạn sau khi bạn tải bản sửa đổi đó lên bằng giao diện người dùng.

  8. Triển khai bản sửa đổi mới.

Để biết thêm thông tin, hãy xem Hướng dẫn: Cách tải proxy xuống bằng giao diện người dùng và API quản lý trong Cộng đồng Apigee.

Cấu trúc proxy API

Proxy API bao gồm cấu hình sau:

Cấu hình cơ sở Chế độ cài đặt cấu hình chính cho proxy API. Xem phần Cơ sở Cấu hình.
Cấu hình điểm cuối proxy Yêu cầu về chế độ cài đặt cho kết nối HTTP đến (từ việc yêu cầu ứng dụng đến Apigee Edge), và quy trình phản hồi cũng như tệp đính kèm về chính sách. Hãy xem ProxyEndpoint.
Cấu hình TargetEndpoint Chế độ cài đặt cho kết nối HTTP đi (từ Apigee Edge đến dịch vụ phụ trợ), luồng yêu cầu và phản hồi, cũng như tệp đính kèm chính sách. Hãy xem phần TargetEndpoint.
Luồng Các quy trình phản hồi và yêu cầu ProxyEndpoint và TargetEndpoint mà chính sách có thể được áp dụng được đính kèm. Hãy xem phần Luồng.
Chính sách Các tệp cấu hình có định dạng XML tuân thủ giản đồ chính sách Apigee Edge. Xem Chính sách.
Tài nguyên Các tập lệnh, tệp JAR và tệp XML được tham chiếu theo chính sách để thực thi logic tuỳ chỉnh. Xem Tài nguyên.

Cấu trúc thư mục proxy API và nội dung

Các thành phần trong bảng trên được xác định bởi các tệp cấu hình trong phần sau cấu trúc thư mục:

Cho thấy cấu trúc thư mục có apiproxy là gốc. Trực tiếp theo
    Thư mục apiproxy là các chính sách, proxy, tài nguyên và các thư mục mục tiêu cũng như
    tệp thời tiếtapi.xml.

Tệp và thư mục cấu hình cấu trúc của proxy API

Phần này giải thích các tệp cấu hình và cấu trúc thư mục của proxy API.

Cấu hình cơ sở

/apiproxy/weatherapi.xml

Cấu hình cơ sở của proxy API, xác định tên của proxy API. Tên phải là duy nhất trong tổ chức.

Cấu hình mẫu:

<APIProxy name="weatherapi">
</APIProxy>

Phần tử cấu hình cơ sở

Tên Mô tả Mặc định Bắt buộc?
APIProxy
name Tên của proxy API. Phải là tên riêng biệt trong một tổ chức. Các nhân vật mà bạn được phép sử dụng trong tên này sẽ bị hạn chế ở những điều sau: A-Za-z0-9_- Không áp dụng
revision Số bản sửa đổi của cấu hình proxy API. Bạn không cần phải đặt rõ ràng số bản sửa đổi, vì Apigee Edge tự động theo dõi bản sửa đổi hiện tại của API proxy. Không áp dụng Không
ConfigurationVersion Phiên bản của giản đồ cấu hình proxy API mà proxy API này tuân thủ. Chiến lược phát hành đĩa đơn giá trị chỉ được hỗ trợ hiện tại là largeVersion 4 và secondaryVersion 0. Chế độ cài đặt này có thể được sử dụng trong tương lai để tạo điều kiện cho sự phát triển của định dạng proxy API. 4 Không
Description Nội dung mô tả bằng văn bản của proxy API. Nếu được cung cấp, nội dung mô tả sẽ hiển thị bằng giao diện người dùng quản lý Edge. Không áp dụng Không
DisplayName Tên thân thiện với người dùng có thể khác với thuộc tính name của Cấu hình proxy API. Không áp dụng Không
Policies Danh sách các chính sách trong thư mục /policies của proxy API này. Bạn sẽ thường chỉ nhìn thấy phần tử này khi proxy API được tạo bằng giao diện người dùng quản lý Edge. Đây chỉ là một "tệp kê khai" , được thiết kế để cung cấp khả năng hiển thị nội dung của proxy API. Không áp dụng Không
ProxyEndpoints Danh sách ProxyEndpoints trong thư mục /proxies của proxy API này. Bạn thường sẽ chỉ nhìn thấy phần tử này khi proxy API được tạo bằng Edge giao diện người dùng quản lý. Đây chỉ là một "tệp kê khai" được thiết kế để giúp bạn nắm bắt thông tin nội dung của proxy API. Không áp dụng Không
Resources Danh sách tài nguyên (JavaScript, Python, Java, ValueTrack) trong /resources của proxy API này. Thông thường, bạn sẽ chỉ thấy phần tử này khi proxy API được tạo bằng giao diện người dùng quản lý Edge. Đây chỉ là một "tệp kê khai" được thiết kế để cho biết các nội dung của proxy API. Không áp dụng Không
Spec Xác định Đặc tả OpenAPI được liên kết với proxy API. Giá trị được đặt thành URL hoặc đường dẫn trong kho thông số kỹ thuật.

Lưu ý: Kho thông số kỹ thuật có trong trải nghiệm New Edge . Để biết thêm thông tin về kho thông số kỹ thuật, hãy xem Quản lý và chia sẻ .
Không áp dụng Không
TargetServers Danh sách TargetServers được tham chiếu trong mọi TargetEndpoints của proxy API này. Bạn sẽ thường chỉ nhìn thấy phần tử này khi proxy API được tạo bằng giao diện người dùng quản lý Edge. Đây chỉ là một "tệp kê khai" , được thiết kế để cung cấp khả năng hiển thị nội dung của proxy API. Không áp dụng Không
TargetEndpoints Danh sách TargetEndpoints trong thư mục /targets của proxy API này. Bạn thường sẽ chỉ nhìn thấy phần tử này khi proxy API được tạo bằng Edge giao diện người dùng quản lý. Đây chỉ là một "tệp kê khai" được thiết kế để giúp bạn nắm bắt thông tin nội dung của proxy API. Không áp dụng Không

ProxyEndpoint

Hình ảnh sau đây cho thấy quy trình yêu cầu/phản hồi:

Cho thấy một ứng dụng khách đang gọi một HTTP
  . Yêu cầu đi qua điểm cuối proxy rồi mới đến điểm cuối đích trước khi được
  xử lý bởi dịch vụ HTTP. Phản hồi trải qua quá trình kết thúc mục tiêu và sau đó
  điểm cuối proxy trước khi được trả về máy khách.

/apiproxy/proxies/default.xml

Cấu hình ProxyEndpoint xác định giao diện đến (dành cho máy khách) của một API proxy. Khi định cấu hình ProxyEndpoint, bạn đang thiết lập cấu hình mạng xác định cách các ứng dụng khách ("apps") gọi API qua proxy.

Cấu hình ProxyEndpoint mẫu sau đây sẽ được lưu trữ trong /apiproxy/proxies:

<ProxyEndpoint name="default">
  <PreFlow/>
  <Flows/>
  <PostFlow/>
  <HTTPProxyConnection>
    <BasePath>/weather</BasePath>
    <VirtualHost>default</VirtualHost>
  </HTTPProxyConnection>
  <FaultRules/>
  <DefaultFaultRule/>
  <RouteRule name="default">
    <TargetEndpoint>default</TargetEndpoint>
  </RouteRule>
</ProxyEndpoint>

Các phần tử cấu hình bắt buộc trong một ProxyEndpoint cơ bản là:

Cấu hình điểm cuối proxy Elements

Tên Mô tả Mặc định Bắt buộc?
ProxyEndpoint
name Tên của ProxyEndpoint. Phải là duy nhất trong cấu hình proxy API, khi (trong một số ít trường hợp) nhiều ProxyEndpoints được xác định. Các ký tự bạn được phép sử dụng trong tên sẽ bị hạn chế như sau: A-Za-z0-9._\-$ %. Không áp dụng
PreFlow Xác định các chính sách trong luồng PreFlow của một yêu cầu hoặc phản hồi. Không áp dụng
Flows
Xác định các chính sách trong các luồng có điều kiện của một yêu cầu hoặc phản hồi.
Không áp dụng
PostFlow
Xác định các chính sách trong luồng PostFlow của một yêu cầu hoặc phản hồi.
Không áp dụng
HTTPProxyConnection Xác định địa chỉ mạng và đường dẫn URI được liên kết với proxy API
BasePath

Chuỗi bắt buộc xác định duy nhất đường dẫn URI mà Apigee Edge sử dụng để định tuyến thông báo đến tới proxy API thích hợp.

BasePath là một mảnh URI (ví dụ: /weather) được thêm vào phần URL cơ sở của proxy API (ví dụ: http://apifactory-test.apigee.net). BasePath phải là duy nhất trong một môi trường. Điểm duy nhất được xác thực khi proxy API được tạo hoặc nhập.

Sử dụng ký tự đại diện trong đường dẫn cơ sở

Bạn có thể sử dụng một hoặc nhiều "*" ký tự đại diện trong đường dẫn cơ sở proxy API. Ví dụ: cơ sở đường dẫn của /team/*/members cho phép ứng dụng gọi https://[host]/team/blue/membershttps://[host]/team/green/members mà bạn không cần tạo proxy API mới để hỗ trợ các nhóm mới. Xin lưu ý rằng /**/ không được hỗ trợ.

Lưu ý quan trọng: Apigee KHÔNG hỗ trợ sử dụng ký tự đại diện "*" với tư cách là người đầu tiên là phần tử của một đường dẫn cơ sở. Ví dụ: thuộc tính này KHÔNG được hỗ trợ: /*/search. Bắt đầu đường dẫn cơ sở bằng "*" có thể dẫn đến các lỗi không mong muốn do cách xác định đường dẫn hợp lệ.

/
VirtualHost

Liên kết proxy API với các URL cơ sở cụ thể của một môi trường. VirtualHost là một cấu hình được đặt tên xác định một hoặc nhiều URL cho môi trường.

Các VirtualHost có tên được xác định cho một ProxyEndpoint sẽ xác định các miền và cổng trên proxy API bị hiển thị và theo đó là URL mà ứng dụng sử dụng để gọi một API proxy.

Theo mặc định, 2 VirtualHost có tên được xác định cho một môi trường: defaultsecure. Tổ chức cũng có thể xác định miền. Ví dụ: để đảm bảo rằng proxy API chỉ có sẵn qua HTTPS, hãy đặt giá trị VirtualHost trong HTTPProxyConnection tới secure.

mặc định Không
Properties Bạn có thể xác định một tập hợp các cài đặt cấu hình HTTP tùy chọn là thuộc tính của <ProxyEndpoint>. Không áp dụng Không
FaultRules
Xác định cách ProxyEndpoint phản ứng với lỗi. Quy tắc lỗi chỉ định hai mục:
  • Một tình trạng chỉ định lỗi cần được xử lý dựa trên giá trị được xác định trước danh mục, danh mục con hoặc tên lỗi
  • Một hoặc nhiều chính sách xác định hành vi của quy tắc lỗi đối với Điều kiện tương ứng

Hãy xem phần Xử lý lỗi.

Không áp dụng Không
DefaultFaultRule

Xử lý mọi lỗi (hệ thống, truyền tải, thông báo hoặc chính sách) không được nêu rõ ràng do một quy tắc lỗi khác xử lý.

Hãy xem phần Xử lý lỗi.

Không áp dụng Không
RouteRule Xác định đích đến của thông báo yêu cầu đến sau khi được xử lý bằng Quy trình yêu cầu ProxyEndpoint. Thông thường, RouteRule trỏ đến một TargetEndpoint được đặt tên nhưng cũng có thể trỏ trực tiếp đến một URL.
Name Thuộc tính bắt buộc, cung cấp tên cho RouteRule. Các nhân vật của bạn được phép sử dụng trong tên này bị hạn chế như sau: A-Za-z0-9._\-$ %. Cho ví dụ: Cat2 %_ là tên pháp lý. Không áp dụng
Condition Một câu lệnh có điều kiện không bắt buộc dùng để định tuyến động trong thời gian chạy. Câu lệnh có điều kiện RouteRules rất hữu ích, chẳng hạn như giúp định tuyến dựa trên nội dung nhằm hỗ trợ phần phụ trợ lập phiên bản. Không áp dụng Không
TargetEndpoint

Chuỗi không bắt buộc xác định cấu hình TargetEndpoint được đặt tên. Một TargetEndpoint là bất kỳ TargetEndpoint nào được xác định trong cùng một proxy API trong thư mục /targets).

Bằng cách đặt tên cho một TargetEndpoint, bạn cho biết nơi thư yêu cầu sẽ được chuyển tiếp sau khi được xử lý bằng quy trình yêu cầu ProxyEndpoint. Lưu ý rằng đây là bước tuỳ chọn cài đặt.

ProxyEndpoint có thể gọi trực tiếp một URL. Ví dụ: tài nguyên JavaScript hoặc Java, hoạt động với vai trò của một ứng dụng HTTP, có thể thực hiện nhiệm vụ cơ bản của TargetEndpoint dùng để chuyển tiếp các yêu cầu đến một dịch vụ phụ trợ.

Không áp dụng Không
URL Một chuỗi tuỳ chọn xác định địa chỉ mạng đi được gọi bởi ProxyEndpoint, bỏ qua mọi cấu hình TargetEndpoint có thể được lưu trữ trong /targets Không áp dụng Không

Cách định cấu hình RouteRules

TargetEndpoint có tên là một tệp cấu hình trong /apiproxy/targets để RouteRule sẽ chuyển tiếp một yêu cầu sau khi được ProxyEndpoint xử lý.

Ví dụ: RouteRule sau đây đề cập đến cấu hình /apiproxy/targets/myTarget.xml:

<RouteRule name="default">
  <TargetEndpoint>myTarget</TargetEndpoint>
</RouteRule>

Gọi URL trực tiếp

ProxyEndpoint cũng có thể trực tiếp gọi một dịch vụ phụ trợ. Lệnh gọi URL trực tiếp sẽ bỏ qua mọi có tên là cấu hình TargetEndpoints trong /apiproxy/targets). Vì lý do này, TargetEndpoint là một cấu hình proxy API không bắt buộc, mặc dù trên thực tế, lệnh gọi trực tiếp từ ProxyEndpoint, bạn không nên sử dụng.

Ví dụ: RouteRule sau đây thực hiện lệnh gọi HTTP đến http://api.mycompany.com/v2.

<RouteRule name="default">
  <URL>http://api.mycompany.com/v2</URL> 
</RouteRule>

Tuyến đường có điều kiện

RouteRules có thể được xâu chuỗi để hỗ trợ định tuyến động trong thời gian chạy. Yêu cầu đến có thể là được định tuyến đến cấu hình TargetEndpoint đã đặt tên, trực tiếp đến URL hoặc đến một tổ hợp cả hai, dựa trên tiêu đề HTTP, nội dung thư, tham số truy vấn hoặc thông tin theo ngữ cảnh như thời gian ngày, ngôn ngữ, v.v.

RouteRules có điều kiện hoạt động giống như các câu lệnh có điều kiện khác trên Apigee Edge. Hãy xem Tài liệu tham khảo về điều kiệnTài liệu tham khảo về biến.

Ví dụ: tổ hợp RouteRule sau đây sẽ đánh giá yêu cầu đến để xác minh trước giá trị của tiêu đề HTTP. Nếu tiêu đề HTTP routeTo có giá trị TargetEndpoint1, sau đó yêu cầu được chuyển tiếp đến TargetEndpoint có tên là TargetEndpoint1 Nếu không thì yêu cầu đến sẽ được chuyển tiếp đến http://api.mycompany.com/v2.

<RouteRule name="MyRoute">
  <Condition>request.header.routeTo = "TargetEndpoint1"</Condition>
  <TargetEndpoint>TargetEndpoint1</TargetEndpoint>
</RouteRule>
<RouteRule name="default">
  <URL>http://api.mycompany.com/v2</URL>
</RouteRule>

Tuyến rỗng

Có thể xác định RouteRule rỗng để hỗ trợ các trường hợp mà thông báo yêu cầu không cần được chuyển tiếp đến TargetEndpoint. Điều này rất hữu ích khi ProxyEndpoint thực hiện tất cả quá trình xử lý cần thiết, chẳng hạn như bằng cách sử dụng JavaScript để gọi một dịch vụ bên ngoài hoặc truy xuất dữ liệu từ tra cứu đến Dịch vụ API kho khoá/giá trị.

Ví dụ: đoạn mã sau đây xác định một Tuyến rỗng:

<RouteRule name="GoNowhere"/>

Các tuyến rỗng có điều kiện có thể hữu ích. Trong ví dụ sau, một Tuyến rỗng được định cấu hình để thực thi khi tiêu đề HTTP request.header.X-DoNothing có giá trị khác với null

<RouteRule name="DoNothingOnDemand">
  <Condition>request.header.X-DoNothing != null</Condition>
</RouteRule>

Hãy nhớ rằng RouteRules có thể được xâu chuỗi, vì vậy, một Tuyến rỗng có điều kiện thường sẽ là một thành phần của tập hợp RouteRules được thiết kế để hỗ trợ việc định tuyến có điều kiện.

Việc sử dụng tuyến đường rỗng có điều kiện trong thực tế sẽ hỗ trợ chức năng lưu vào bộ nhớ đệm. Bằng cách sử dụng giá trị của biến được đặt bởi Chính sách bộ nhớ đệm, bạn có thể định cấu hình proxy API để thực thi Định tuyến rỗng khi một mục nhập được phân phát từ bộ nhớ đệm.

<RouteRule name="DoNothingUnlessTheCacheIsStale">
  <Condition>lookupcache.LookupCache-1.cachehit is true</Condition>
</RouteRule>

TargetEndpoint

Cho thấy một ứng dụng khách đang gọi một HTTP
  . Yêu cầu đi qua điểm cuối proxy rồi mới đến điểm cuối đích trước khi được
  xử lý bởi dịch vụ HTTP. Phản hồi trải qua quá trình kết thúc mục tiêu và sau đó
  điểm cuối proxy trước khi được trả về máy khách.

TargetEndpoint là đường đi tương đương với ProxyEndpoint. TargetEndpoint có chức năng là máy khách đến dịch vụ phụ trợ hoặc API – dịch vụ này gửi yêu cầu và nhận phản hồi.

Proxy API không cần có TargetEndpoints. ProxyEndpoints có thể được định cấu hình để gọi URL trực tiếp. Proxy API không có TargetEndpoints thường chứa một ProxyEndpoint gọi trực tiếp dịch vụ phụ trợ hoặc dịch vụ được định cấu hình để gọi một dịch vụ bằng Java hoặc JavaScript.

Cấu hình điểm cuối đích

/targets/default.xml

TargetEndpoint xác định kết nối đi từ Apigee Edge đến một dịch vụ khác hoặc nguồn.

Dưới đây là cấu hình TargetEndpoint mẫu:

<TargetEndpoint name="default">
  <PreFlow/>
  <Flows/>
  <PostFlow/>
  <HTTPTargetConnection>
    <URL>http://mocktarget.apigee.net</URL>
    <SSLInfo/>
  </HTTPTargetConnection>
  <FaultRules/>
  <DefaultFaultRule/>
  <ScriptTarget/>
  <LocalTargetConnection/>
</TargetEndpoint>

Cấu hình điểm cuối đích Elements

TargetEndpoint có thể gọi một mục tiêu theo một trong các cách sau:

  • HTTPTargetConnection cho lệnh gọi HTTP(S)
  • LocalTargetConnection để chuỗi proxy đến proxy cục bộ
  • ScriptTarget cho các lệnh gọi đến một ứng dụng được lưu trữ trên Edge Tập lệnh Node.js

Chỉ định cấu hình một trong các chỉ số này trong TargetEndpoint.

Tên Mô tả Mặc định Bắt buộc?
TargetEndpoint
name Tên của TargetEndpoint phải là duy nhất trong proxy API . Tên của TargetEndPoint được dùng trong ProxyEndpoint RouteRule để các yêu cầu trực tiếp để xử lý đi. Các ký tự bạn được phép sử dụng trong tên bị hạn chế ở những mục sau: A-Za-z0-9._\-$ %. Không áp dụng
PreFlow Xác định các chính sách trong luồng PreFlow của một yêu cầu hoặc phản hồi. Không áp dụng
Flows
Xác định các chính sách trong các luồng có điều kiện của một yêu cầu hoặc phản hồi.
Không áp dụng
PostFlow
Xác định các chính sách trong luồng PostFlow của một yêu cầu hoặc phản hồi.
Không áp dụng
HTTPTargetConnection

Với các phần tử con, chỉ định phạm vi tiếp cận tài nguyên phụ trợ qua HTTP.

Nếu bạn sử dụng HTTPTargetConnection, đừng định cấu hình các loại kết nối đích khác (ScriptTarget hoặc LocalTargetConnection).

URL Xác định địa chỉ mạng của dịch vụ phụ trợ mà TargetEndpoint chuyển tiếp đến yêu cầu tin nhắn. Không áp dụng Không
LoadBalancer

Xác định một hoặc nhiều cấu hình TargetServer được đặt tên. Máy chủ mục tiêu được đặt tên có thể sử dụng cấu hình để cân bằng tải xác định 2 hoặc nhiều cấu hình điểm cuối kết nối.

Bạn cũng có thể sử dụng TargetServers để tách cấu hình proxy API khỏi thông tin cụ thể URL điểm cuối của dịch vụ phụ trợ.

Xem phần Tải cân bằng giữa các máy chủ phụ trợ.

Không áp dụng Không
Properties Bạn có thể xác định một tập hợp các cài đặt cấu hình HTTP tùy chọn là thuộc tính của <TargetEndpoint>. Không áp dụng Không
SSLInfo Tùy ý xác định cài đặt TLS/SSL trên TargetEndpoint để kiểm soát TLS/SSL kết nối giữa proxy API và dịch vụ mục tiêu. Xem Cấu hình điểm cuối đích TLS/SSL. Không áp dụng Không
LocalTargetConnection Với các phần tử con, chỉ định một tài nguyên cần truy cập cục bộ, bỏ qua mạng như cân bằng tải và trình xử lý tin nhắn.

Để chỉ định tài nguyên mục tiêu, hãy đưa phần tử con APIProxy (với phần tử con phần tử ProxyEndpoint) hoặc phần tử con của Đường dẫn.

Để biết thêm thông tin, hãy xem phần Tạo chuỗi proxy API khi kết hợp cùng nhau.

Nếu bạn sử dụng LocalTargetConnection, đừng định cấu hình các loại kết nối mục tiêu khác (HTTPTargetConnection hoặc ScriptTarget).

APIProxy Chỉ định tên của proxy API để dùng làm mục tiêu cho các yêu cầu. Proxy mục tiêu phải trong cùng một tổ chức và môi trường với yêu cầu gửi proxy. Đây là một thay thế cho việc sử dụng phần tử Đường dẫn. Không áp dụng Không
ProxyEndpoint Dùng với APIProxy để chỉ định tên của ProxyEndpoint của proxy mục tiêu. Không áp dụng Không
Path Chỉ định đường dẫn điểm cuối của proxy API để dùng làm mục tiêu cho các yêu cầu. Mục tiêu proxy phải trong cùng một tổ chức và môi trường với yêu cầu gửi proxy. Chiến dịch này là giải pháp thay thế cho việc sử dụng APIProxy. Không áp dụng Không
FaultRules
Xác định cách TargetEndpoint phản ứng với lỗi. Quy tắc lỗi chỉ định hai mục:
  • Một tình trạng chỉ định lỗi cần được xử lý dựa trên giá trị được xác định trước danh mục, danh mục con hoặc tên lỗi
  • Một hoặc nhiều chính sách xác định hành vi của quy tắc lỗi đối với Điều kiện tương ứng

Hãy xem phần Xử lý lỗi.

Không áp dụng Không
DefaultFaultRule

Xử lý mọi lỗi (hệ thống, truyền tải, thông báo hoặc chính sách) không được nêu rõ ràng do một FaultRule khác xử lý.

Hãy xem phần Xử lý lỗi.

Không áp dụng Không
ScriptTarget
ResourceURL

Xác định loại tài nguyên (nút) và tên của tập lệnh Node.js chính triển khai chức năng TargetEndpoint.

<ResourceURL>node://server.js</ResourceURL>

Tập lệnh cần được đi kèm với tệp tài nguyên của proxy API. Xem bài viết Thêm Node.js vào một proxy API hiện có.

Nếu bạn sử dụng ScriptTarget, thì đừng định cấu hình các loại kết nối đích khác (HTTPTargetConnection hoặc LocalTargetConnection).

Không áp dụng
EnvironmentVariable

Tùy ý chuyển các biến môi trường vào tập lệnh Node.js chính.

Xem bài viết Hiểu Edge hỗ trợ cho các mô-đun Node.js.

Không áp dụng Không
Arguments

Tùy ý truyền các đối số đến tập lệnh Node.js chính.

Xem bài viết Hiểu Edge hỗ trợ cho các mô-đun Node.js.

Không áp dụng Không

Cấu hình điểm cuối đích TLS/SSL

TargetEndpoints thường cần quản lý các kết nối HTTPS có phần phụ trợ không đồng nhất cơ sở hạ tầng. Vì lý do này, một số cài đặt cấu hình TLS/SSL được hỗ trợ.

TLS/SSL Phần tử cấu hình TargetEndpoint

Tên Mô tả Mặc định Bắt buộc?
SSLInfo
Enabled Cho biết liệu TLS/SSL có được bật cho điểm cuối hay không. Giá trị mặc định là true nếu <URL> chỉ định giao thức HTTPS, và false nếu <URL> chỉ định HTTP. true nếu <URL> chỉ định HTTPS Không
TrustStore Kho khoá chứa các chứng chỉ máy chủ đáng tin cậy. Không áp dụng Không
ClientAuthEnabled Chế độ cài đặt bật tính năng xác thực máy khách đi (TLS/SSL 2 chiều) false Không
KeyStore Kho khoá chứa các khoá riêng tư dùng để xác thực ứng dụng đi Không áp dụng Có (nếu ClientAuthEnabled là true)
KeyAlias Bí danh khoá của khoá riêng tư dùng để xác thực ứng dụng đi Không áp dụng Có (nếu ClientAuthEnabled là true)
Ciphers

Các thuật toán mật mã được hỗ trợ cho TLS/SSL đi. Nếu không có thuật toán mật mã nào được chỉ định, thì tất cả các thuật toán mật mã có sẵn cho JVM sẽ được phép.

Để hạn chế thuật toán mật mã, hãy thêm các phần tử sau liệt kê các thuật toán mật mã được hỗ trợ:

<Ciphers>
 <Cipher>TLS_RSA_WITH_3DES_EDE_CBC_SHA</Cipher>    
 <Cipher>TLS_RSA_WITH_DES_CBC_SHA</Cipher>
</Ciphers>
Không áp dụng Không
Protocols

Các giao thức được hỗ trợ cho TLS/SSL đi. Nếu không có giao thức nào được chỉ định, thì tất cả Các giao thức có sẵn cho JVM sẽ được cho phép.

Để hạn chế các giao thức, hãy thêm các phần tử sau đây liệt kê các giao thức được hỗ trợ:

<Protocols>
 <Protocol>TLSv1.1</Protocol>
 <Protocol>TLSv1.2</Protocol>
</Protocols>
Không áp dụng Không
CommonName

Nếu được chỉ định, một giá trị mà tên thông thường của chứng chỉ mục tiêu sẽ được xác thực. Giá trị này chỉ hợp lệ cho các cấu hình TargetEndpoint và TargetServer. Không phải hợp lệ cho các cấu hình VirtualHost.

Theo mặc định, giá trị được chỉ định sẽ khớp chính xác với tên thông thường của chứng chỉ đích. Ví dụ: dùng *.myhost.com làm giá trị cho <CommonName> sẽ chỉ khớp và xác thực tên máy chủ mục tiêu nếu giá trị chính xác *.myhost.com được chỉ định là tên thông dụng trong chứng chỉ đích.

Nếu bạn muốn, Apigee có thể so khớp với ký tự đại diện thông qua thuộc tính wildcardMatch.

Ví dụ: tên thông thường được chỉ định là abc.myhost.com trong chứng chỉ mục tiêu sẽ được so khớp và xác thực nếu <CommonName> được chỉ định như sau:

<CommonName wildcardMatch="true">*.myhost.com</CommonName>

Không áp dụng Không

Mẫu TargetEndpoint khi bật tính năng xác thực ứng dụng đi

<TargetEndpoint name="default">
  <HttpTargetConnection>
        <URL>https://myservice.com</URL>
    <SSLInfo>
      <Enabled>true</Enabled>
      <ClientAuthEnabled>true</ClientAuthEnabled>
      <KeyStore>myKeystore</KeyStore>
      <KeyAlias>myKey</KeyAlias>
      <TrustStore>myTruststore</TrustStore>
    </SSLInfo>
  </HttpTargetConnection>
</TargetEndpoint>

Để biết hướng dẫn chi tiết, hãy xem Định cấu hình TLS từ Edge đến phần phụ trợ (Đám mây và Đám mây riêng tư).

Sử dụng các biến luồng để đặt giá trị TLS/SSL một cách linh động

Bạn cũng có thể tự động thiết lập chi tiết TLS/SSL để hỗ trợ các yêu cầu linh hoạt về thời gian chạy. Ví dụ: nếu proxy của bạn kết nối với hai mục tiêu có thể khác nhau (mục tiêu thử nghiệm và mục tiêu mục tiêu chính thức), bạn có thể thiết lập proxy API theo phương thức lập trình để phát hiện môi trường đó gọi cũng như đặt động các tham chiếu đến kho khoá và kho tin cậy thích hợp. Nội dung sau đây Bài viết trên Cộng đồng Apigee giải thích trường hợp này chi tiết hơn và cung cấp các API có thể triển khai ví dụ về proxy: https://community.apigee.com/articles/21424/dynamic-sslinfo-for-targetendpoint-using-variable.html.

Trong ví dụ sau đây, cách thẻ <SSLInfo> sẽ được đặt trong một Cấu hình TargetEndpoint, các giá trị có thể được cung cấp trong thời gian chạy, ví dụ như bằng Java Chú thích, chính sách JavaScript hoặc chính sách Chỉ định thông báo. Sử dụng bất cứ biến nào trong thông báo chứa các giá trị bạn muốn đặt.

Biến chỉ được phép trong những phần tử sau đây.

<SSLInfo>
    <Enabled>{myvars.ssl.enabled}</Enabled>
    <ClientAuthEnabled>{myvars.ssl.client.auth.enabled}</ClientAuthEnabled>
    <KeyStore>{myvars.ssl.keystore}</KeyStore>
    <KeyAlias>{myvars.ssl.keyAlias}</KeyAlias>
    <TrustStore>{myvars.ssl.trustStore}</TrustStore>
</SSLInfo>

Sử dụng các tham chiếu để đặt giá trị TLS/SSL một cách linh động

Khi định cấu hình TargetEndpoint sử dụng HTTPS, bạn phải xem xét trường hợp khi Chứng chỉ TLS/SSL hết hạn hoặc bạn phải cập nhật chứng chỉ này khi cấu hình hệ thống thay đổi. Trong một Edge dành cho cài đặt Đám mây riêng tư, khi định cấu hình TLS/SSL bằng cách sử dụng các giá trị tĩnh hoặc bằng cách bằng cách sử dụng các biến luồng, có khả năng bạn sẽ phải khởi động lại Trình xử lý thông báo.

Để biết thêm thông tin, hãy xem phần Cập nhật TLS chứng chỉ.

Tuy nhiên, bạn có thể tuỳ ý định cấu hình TargetEndpoint để sử dụng thông tin tham chiếu đến kho khoá hoặc Truststore thay thế. Lợi thế của việc sử dụng tệp đối chiếu là bạn có thể cập nhật tham chiếu đến một kho khoá hoặc kho tin cậy khác để cập nhật chứng chỉ TLS/SSL mà không cần phải khởi động lại Trình xử lý tin nhắn.

Ví dụ: dưới đây là một TargetEndpoint sử dụng một tệp tham chiếu đến kho khoá:

<SSLInfo> 
    <Enabled>true</Enabled> 
    <ClientAuthEnabled>false</ClientAuthEnabled> 
    <KeyStore>ref://keystoreref</KeyStore> 
    <KeyAlias>myKeyAlias</KeyAlias> 
</SSLInfo>

Sử dụng lệnh gọi API POST sau để tạo tham chiếu có tên keystoreref:

curl -X POST  -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \
-d '<ResourceReference name="keystoreref">
    <Refers>myTestKeystore</Refers>
    <ResourceType>KeyStore</ResourceType>
</ResourceReference>' -u email:password

Tệp tham chiếu chỉ định tên và loại của kho khoá.

Sử dụng lệnh gọi API GET sau để xem tệp tham chiếu:

curl -X GET https://api.enterprise.apigee.com/v1/o/[org_name}/e/{env_name}/references/keystoreref -u uname:password

Để sau này thay đổi tham chiếu để trỏ đến một kho khoá khác, hãy đảm bảo rằng bí danh đó đã cùng một tên, hãy sử dụng lệnh gọi PUT sau:

curl -X PUT -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references/keystoreref \
-d '<ResourceReference name="keystoreref">
    <Refers>myNewKeystore</Refers>
    <ResourceType>KeyStore</ResourceType>
</ResourceReference>' -u email:password

TargetEndpoint với cân bằng tải mục tiêu

TargetEndpoints hỗ trợ cân bằng tải trên nhiều TargetServers được đặt tên bằng cách sử dụng ba lần tải các thuật toán cân bằng.

Để biết hướng dẫn chi tiết, hãy tham khảo bài viết Cân bằng tải trên phần phụ trợ máy chủ.

Chính sách

Thư mục /policies trong proxy API chứa mọi chính sách có thể áp dụng được đính kèm vào Luồng trong proxy API.

Phần tử cấu hình chính sách

Tên Mô tả Mặc định Bắt buộc?
Policy
name

Tên nội bộ của chính sách. Các ký tự mà bạn có thể sử dụng trong tên bị hạn chế thành: A-Za-z0-9._\-$ %. Tuy nhiên, giao diện người dùng quản lý Edge sẽ thực thi thêm các hạn chế cụ thể, chẳng hạn như tự động xoá các ký tự không phải là chữ và số.

(Không bắt buộc) Bạn có thể dùng phần tử <DisplayName> để gắn nhãn trong trình chỉnh sửa proxy giao diện người dùng quản lý có tên bằng ngôn ngữ tự nhiên khác.

Không áp dụng
enabled

Hãy đặt thành true để thực thi chính sách này.

Đặt thành false để "tắt" chính sách. Chính sách này sẽ không được thực thi ngay cả khi luồng đó vẫn được liên kết với một luồng.

đúng Không
continueOnError

Đặt thành false để trả về lỗi khi chính sách không thành công. Đây là hành vi dự kiến đối với hầu hết các chính sách.

Đặt thành true để tiếp tục thực thi luồng ngay cả sau khi có chính sách không thành công.

false Không
async

Lưu ý: Thuộc tính này không khiến chính sách thực thi không đồng bộ. Trong hầu hết các trường hợp, hãy để thuộc tính này theo mặc định là false.

Khi bạn đặt thành true, quá trình thực thi chính sách sẽ được giảm tải sang một luồng chính để luồng chính được thoải mái xử lý các yêu cầu bổ sung. Khi ngoại tuyến xử lý xong, luồng chính sẽ quay lại và hoàn tất việc xử lý thông báo luồng. Trong một số trường hợp, việc đặt chế độ không đồng bộ thành true sẽ cải thiện proxy API hiệu suất. Tuy nhiên, việc sử dụng quá mức không đồng bộ có thể làm giảm hiệu suất khi có quá nhiều luồng chuyển đổi.

Để sử dụng hành vi không đồng bộ trong proxy API, hãy xem Mô hình đối tượng JavaScript.

false Không

Tệp đính kèm về chính sách

Hình ảnh sau đây cho thấy trình tự thực thi luồng proxy API:

hình ảnh một máy khách đang gọi một dịch vụ HTTP. Yêu cầu gặp phải
  ProxyEndpoint và TargetEndpoint mỗi bên chứa các bước kích hoạt chính sách. Sau
  Dịch vụ HTTP trả về phản hồi, phản hồi được TargetEndpoint xử lý và sau đó là
  ProxyEndpoing trước khi được trả về ứng dụng khách. Giống như yêu cầu, phản hồi sẽ được xử lý
  theo chính sách trong các bước.

Như đã trình bày ở trên:

Chính sách được đính kèm dưới dạng các bước xử lý trong Luồng. Tên của chính sách được dùng để tham chiếu chính sách sẽ được thực thi như một Bước xử lý. Định dạng của một tài liệu đính kèm về chính sách: như sau:

<Step><Name>MyPolicy</Name></Step>

Các chính sách được thực thi theo thứ tự đính kèm vào Quy trình. Ví dụ:

<Step><Name>FirstPolicy</Name></Step>
<Step><Name>SecondPolicy</Name></Step>

Cấu hình tệp đính kèm về chính sách Elements

Tên Mô tả Mặc định Bắt buộc?
Step
Name Tên của chính sách sẽ được thực thi theo định nghĩa Bước này. Không áp dụng
Condition Câu lệnh có điều kiện xác định liệu chính sách có được thực thi hay không. Nếu một chính sách có một điều kiện liên kết, thì chính sách chỉ thực thi nếu điều kiện đó có giá trị là true (đúng). Không áp dụng Không

Luồng

ProxyEndpoint và TargetEndpoint xác định quy trình cho thông báo yêu cầu và phản hồi đang xử lý. Quy trình xử lý bao gồm một quy trình yêu cầu và một quy trình phản hồi. Mỗi yêu cầu luồng và luồng phản hồi được chia nhỏ thành PreFlow, một hoặc nhiều thuộc tính "có điều kiện" (không bắt buộc) hoặc "đã đặt tên" và PostFlow.

  • PreFlow: Luôn thực thi. Thực thi trước bất kỳ Flow có điều kiện nào.
  • PostFlow: Luôn thực thi. Thực thi sau mọi Luồng có điều kiện.

Ngoài ra, bạn có thể thêm PostClientFlow vào ProxyEndpoint, hàm này sẽ thực thi sau được trả về ứng dụng khách yêu cầu. Chỉ có MessageLogging và chính sách Có thể đính kèm Tiện ích ghi nhật ký Google Stackdriver vào quy trình này. PostClientFlow giảm độ trễ của proxy API và cung cấp thông tin cho việc ghi nhật ký không được tính toán cho đến khi phản hồi được trả về cho ứng dụng, chẳng hạn như client.sent.start.timestampclient.sent.end.timestamp.Luồng được sử dụng chủ yếu để đo khoảng thời gian giữa dấu thời gian bắt đầu và kết thúc cho phản hồi .

Xem video hướng dẫn nhanh

Video: Xem video ngắn này về cách sử dụng tính năng Ghi nhật ký tin nhắn trong PostClientFlow.

Dưới đây là ví dụ về PostClientFlow có đính kèm chính sách ghi nhật ký thư.

    ...
    <PostFlow name="PostFlow">
        <Request/>
        <Response/>
    </PostFlow>
    <PostClientFlow>
        <Request/>
        <Response>
            <Step>
                <Name>Message-Logging-1</Name>
            </Step>
        </Response>
    </PostClientFlow>
    ...

Quy trình xử lý proxy API sẽ thực thi Luồng theo trình tự sau:

Quy trình yêu cầu:

  1. Luồng trước yêu cầu proxy
  2. Luồng có điều kiện yêu cầu proxy (Không bắt buộc)
  3. Yêu cầu proxy PostFlow
  4. Luồng trước yêu cầu mục tiêu
  5. Luồng có điều kiện yêu cầu mục tiêu (Không bắt buộc)
  6. Yêu cầu mục tiêu PostFlow

Quy trình phản hồi:

  1. Trước luồng phản hồi mục tiêu
  2. Luồng có điều kiện của phản hồi mục tiêu (Không bắt buộc)
  3. Sau luồng phản hồi mục tiêu
  4. Trước luồng phản hồi proxy
  5. Luồng có điều kiện phản hồi proxy (Không bắt buộc)
  6. Luồng phản hồi proxy sau luồng
  7. Phản hồi của PostClientFlow (Không bắt buộc)

Bạn chỉ cần định cấu hình những Quy trình có tệp đính kèm chính sách trong ProxyEndpoint hoặc Cấu hình TargetEndpoint. Chỉ cần chỉ định PreFlow và PostFlow trong ProxyEndpoint hoặc Cấu hình TargetEndpoint khi cần thực thi một chính sách trong giai đoạn PreFlow hoặc PostFlow đang xử lý.

Trái ngược với các luồng có điều kiện, thứ tự của các phần tử PreFlow và PostFlow không quan trọng--Proxy API sẽ luôn thực thi từng API tại thời điểm thích hợp trong quy trình, bất kể chúng xuất hiện ở đâu trong cấu hình Điểm cuối.

Luồng có điều kiện

ProxyEndpoints và TargetEndpoints hỗ trợ số lượng luồng có điều kiện không giới hạn (cũng được gọi là "luồng được đặt tên").

Proxy API kiểm tra điều kiện được chỉ định trong luồng có điều kiện và nếu điều kiện đáp ứng thì các bước xử lý trong quy trình có điều kiện sẽ được proxy API thực thi. Nếu không đáp ứng điều kiện thì các bước xử lý trong luồng có điều kiện sẽ bị bỏ qua. Câu lệnh có điều kiện Các luồng được đánh giá theo thứ tự đã xác định trong proxy API và luồng đầu tiên có điều kiện là đã thực thi.

Bằng cách xác định luồng có điều kiện, bạn có thể áp dụng các bước xử lý trong proxy API dựa trên:

  • URI yêu cầu
  • Động từ HTTP (GET/PUT/POST/DELETE)
  • Giá trị của thông số truy vấn, tiêu đề và thông số biểu mẫu
  • Nhiều loại điều kiện khác

Ví dụ: luồng có điều kiện sau đây chỉ định rằng nó chỉ được thực thi khi đường dẫn tài nguyên yêu cầu là /accesstoken. Bất kỳ yêu cầu đến nào có đường dẫn /accesstoken khiến luồng này được thực thi, cùng với mọi chính sách được gắn với luồng. Nếu đường dẫn yêu cầu không chứa hậu tố /accesstoken, thì luồng này không thực thi (mặc dù một luồng có điều kiện khác có thể).

<Flows>
  <Flow name="TokenEndpoint">
    <Condition>proxy.pathsuffix MatchesPath "/accesstoken"</Condition>
    <Request>
      <Step>
        <Name>GenerateAccessToken</Name>
      </Step>
    </Request> 
  </Flow>
</Flows>   

Phần tử cấu hình luồng

Tên Mô tả Mặc định Bắt buộc?
Flow Một quy trình xử lý yêu cầu hoặc phản hồi do một ProxyEndpoint xác định hoặc TargetEndpoint
Name Tên riêng biệt của Luồng. Không áp dụng
Condition Câu lệnh có điều kiện đánh giá một hoặc nhiều biến cần đánh giá là true hoặc false. Tất cả các Flow khác với các loại PreFlow và PostFlow được xác định trước đều phải xác định giá trị điều kiện thực thi. Không áp dụng
Request Quy trình liên kết với quá trình xử lý thông báo Yêu cầu Không áp dụng Không
Response Quy trình liên kết với quá trình xử lý tin nhắn Phản hồi Không áp dụng Không

Xử lý bước

Trình tự sắp xếp của các Luồng có điều kiện được Apigee Edge thực thi. Luồng có điều kiện thực thi từ trên xuống dưới. Luồng có điều kiện đầu tiên có điều kiện được đánh giá là true được thực thi và chỉ một Luồng có điều kiện được thực thi.

Ví dụ: trong cấu hình Quy trình sau đây, mọi yêu cầu đến không bao gồm hậu tố đường dẫn /first hoặc /second sẽ khiến ThirdFlow để thực thi, thực thi chính sách có tên là Return404.

<Flows>
  <Flow name="FirstFlow">
    <Condition>proxy.pathsuffix MatchesPath "/first"</Condition>
    <Request>
      <Step><Name>FirstPolicy</Name></Step>
    </Request>
  </Flow>
  <Flow name="SecondFlow">
    <Condition>proxy.pathsuffix MatchesPath "/second"</Condition>
    <Request>
      <Step><Name>FirstPolicy</Name></Step>
      <Step><Name>SecondPolicy</Name></Step>
    </Request>
  </Flow>
  <Flow name="ThirdFlow">
    <Request>
      <Step><Name>Return404</Name></Step>
    </Request>
  </Flow>
</Flows>

Tài nguyên

"Tài nguyên" (tệp tài nguyên để sử dụng trong proxy API) là phép biến đổi tập lệnh, mã và BII có thể đính kèm vào Luồng bằng cách sử dụng chính sách. Các lệnh này xuất hiện trong "Tập lệnh" của API trình chỉnh sửa proxy trong giao diện người dùng quản lý.

Xem Tệp tài nguyên để biết tài nguyên.

Tài nguyên có thể được lưu trữ trong proxy API, môi trường hoặc tổ chức. Trong mỗi trường hợp, được tham chiếu theo tên trong một Chính sách. Dịch vụ API phân giải tên bằng cách chuyển từ API proxy, với môi trường, đến cấp tổ chức.

Chính sách có thể tham chiếu tài nguyên được lưu trữ ở cấp tổ chức trong bất kỳ môi trường nào. Các chính sách có thể tham chiếu tài nguyên được lưu trữ ở cấp môi trường trong môi trường đó. Đáp tài nguyên được lưu trữ ở cấp proxy API chỉ có thể được chính sách trong proxy API đó tham chiếu.