Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến
Tài liệu về Apigee X. thông tin
Nội dung
Chính sách Chú thích dịch vụ cho phép bạn gọi đến một dịch vụ khác trong luồng proxy API của mình. Bạn có thể tạo chú thích cho một dịch vụ bên ngoài (chẳng hạn như điểm cuối của dịch vụ Kiến trúc chuyển trạng thái đại diện (REST) bên ngoài) hoặc dịch vụ nội bộ (chẳng hạn như proxy API trong cùng một tổ chức và môi trường).
- Trong trường hợp sử dụng bên ngoài, bạn tạo chú thích cho API của bên thứ ba ngoài API của bên thứ ba proxy. Phản hồi của API bên thứ ba được phân tích cú pháp và chèn vào phản hồi của API thông điệp, làm phong phú và "kết hợp" dữ liệu cho người dùng cuối ứng dụng. Bạn cũng có thể gửi yêu cầu sử dụng chính sách Chú thích dịch vụ trong quy trình yêu cầu, sau đó chuyển thông tin vào phản hồi đến TargetEndpoint của proxy API.
- Trong một trường hợp sử dụng khác, bạn gọi một proxy trong cùng tổ chức và môi trường với mà bạn đang dùng để gọi điện. Ví dụ: bạn có thể thấy tính năng này hữu ích khi có một proxy cung cấp một số chức năng riêng biệt cấp thấp mà một hoặc nhiều proxy khác sẽ sử dụng. Cho ví dụ: một proxy hiển thị các thao tác tạo/đọc/cập nhật/xoá với 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 ứng dụng khách.
Chính sách này hỗ trợ các yêu cầu qua HTTP và HTTPS.
Mẫu
Cuộc gọi cục bộ tới proxy nội bộ
<LocalTargetConnection> <APIProxy>data-manager</APIProxy> <ProxyEndpoint>default</ProxyEndpoint> </LocalTargetConnection>
Ví dụ này tạo một chú thích đến một proxy API cục bộ (tức là một proxy trong cùng một tổ chức
và môi trường) có tên là data-manager
, trong đó chỉ định điểm cuối proxy có tên
là default
.
URL dưới dạng biến
<HTTPTargetConnection> <URL>http://example.com/{request.myResourcePath}</URL> </HTTPTargetConnection>
Ví dụ này sử dụng một biến trong URL để tự động điền URL của mục tiêu. Chiến lược phát hành đĩa đơn Không thể chỉ định phần giao thức của URL, http://, bằng một biến. Ngoài ra, bạn phải sử dụng các biến riêng biệt cho phần miền của URL và cho phần còn lại của URL.
Mã hoá địa lý Google / xác định yêu cầu
<ServiceCallout name="ServiceCallout-GeocodingRequest1"> <DisplayName>Inline request message</DisplayName> <Request variable="authenticationRequest"> <Set> <QueryParams> <QueryParam name="address">{request.queryparam.postalcode}</QueryParam> <QueryParam name="region">{request.queryparam.country}</QueryParam> <QueryParam name="sensor">false</QueryParam> </QueryParams> </Set> </Request> <Response>GeocodingResponse</Response> <Timeout>30000</Timeout> <HTTPTargetConnection> <URL>http://maps.googleapis.com/maps/api/geocode/json</URL> </HTTPTargetConnection> </ServiceCallout>
http://maps.googleapis.com/maps/api/geocode/json
Thay vì sử dụng một chính sách như Chỉ định tin nhắn để tạo đối tượng yêu cầu, bạn có thể xác định trực tiếp trong Chính sách chú thích dịch vụ. Trong ví dụ này, chính sách về Chú thích dịch vụ đặt giá trị của ba tham số truy vấn được truyền tới dịch vụ bên ngoài. Bạn có thể tạo một toàn bộ thông báo yêu cầu trong chính sách Chú thích dịch vụ chỉ định tải trọng, loại mã hoá chẳng hạn như application/xml, tiêu đề, tham số biểu mẫu, v.v.
Dưới đây là một ví dụ khác, trong đó yêu cầu được tạo trước khi tiếp cận Chú thích dịch vụ .
<ServiceCallout name="ServiceCallout-GeocodingRequest2"> <Request clearPayload="false" variable="GeocodingRequest"/> <Response>GeocodingResponse</Response> <Timeout>30000</Timeout> <HTTPTargetConnection> <URL>http://maps.googleapis.com/maps/api/geocode/json</URL> </HTTPTargetConnection> </ServiceCallout>
Nội dung của thông báo yêu cầu được trích xuất từ một biến có tên là GeocodingRequest (có thể là được điền sẵn, ví dụ: theo chính sách AttributionMessage). Tin nhắn phản hồi được chỉ định cho có tên là GeocodingResponse, trong đó nó là có thể được phân tích cú pháp bằng chính sách Biến trích xuất hoặc bằng mã tuỳ chỉnh được viết bằng JavaScript hoặc Java. Chính sách này sẽ đợi 30 giây để nhận phản hồi từ API mã hoá địa lý của Google trước khi hết thời gian chờ.
Để có một proxy API mẫu hoàn chỉnh sử dụng Chú thích dịch vụ mẫu này, cùng với Gán chính sách Thông báo và trích xuất biến, xem phần Sử dụng chính sách cấu trúc.
Máy chủ đích của cuộc gọi
<ServiceCallout async="false" continueOnError="false" enabled="true" name="service-callout"> <DisplayName>service-callout</DisplayName> <Properties/> <Request clearPayload="true" variable="myRequest"> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> </Request> <Response>myResponse</Response> <HTTPTargetConnection> <LoadBalancer> <Algorithm>RoundRobin</Algorithm> <Server name="httpbin"/> <Server name="yahoo"/> </LoadBalancer> <Path>/get</Path> </HTTPTargetConnection> </ServiceCallout>
Chính sách này sử dụng thuộc tính Loadbalancer để gọi máy chủ mục tiêu và cân bằng tải trên chúng. Trong ví dụ này, tải được phân phối trên hai máy chủ đích có tên là "httpbin" và "yahoo". Để biết thông tin về cách thiết lập Máy chủ Mục tiêu cho proxy của bạn và định cấu hình cân bằng tải, hãy xem Cân bằng tải trên máy chủ phụ trợ.
Giới thiệu về chính sách Chú thích dịch vụ
Có nhiều trường hợp mà bạn có thể sử dụng chính sách Chú thích dịch vụ trong proxy API. Cho ví dụ: bạn có thể định cấu hình proxy API để thực hiện lệnh gọi đến một dịch vụ bên ngoài cần phân phối dữ liệu định vị vị trí, bài đánh giá của khách hàng, các mặt hàng trong danh mục bán lẻ của đối tác, v.v.
Chú thích thường được sử dụng cùng với hai chính sách khác: Chỉ định thông báo và trích xuất biến.
- Yêu cầu: Chỉ định tin nhắn sẽ điền thông báo yêu cầu được gửi đến điều khiển từ xa .
-
Phản hồi: Trích xuất biến sẽ phân tích cú pháp phản hồi và trích xuất dữ liệu cụ thể nội dung.
Cấu trúc chính sách Chú thích dịch vụ điển hình bao gồm:
- Gửi tin nhắn chính sách: Tạo thông báo yêu cầu, điền tiêu đề HTTP, tham số truy vấn, đặt HTTP động từ, v.v.
- Chính sách về Chú thích dịch vụ: Đề cập đến một thông báo do tuỳ chọn Chỉ định thông báo tạo
chính sách, xác định URL mục tiêu cho lệnh gọi bên ngoài và xác định tên cho đối tượng phản hồi
mà dịch vụ mục tiêu trả về.
Để cải thiện hiệu suất, bạn cũng có thể lưu các phản hồi của Chú thích dịch vụ vào bộ nhớ đệm, như mô tả trong Chuỗi bài đăng trên cộng đồng Apigee: https://community.apigee.com/questions/34110/how-can-i-store-the-results-of-the-servicecallout.html. - Trích xuất biến policy: Thường xác định biểu thức JSONPath hoặc NETWORK phân tích cú pháp thông báo được tạo theo Chú thích dịch vụ. Sau đó, chính sách này đặt các biến chứa giá trị được phân tích cú pháp từ Phản hồi về chú thích dịch vụ.
Xem Chính sách sử dụng cấu trúc để có proxy API mẫu hoàn chỉnh sử dụng Chính sách Chú thích dịch vụ cùng với chính sách Gán thông báo và trích xuất biến.
Xử lý lỗi tuỳ chỉnh
Tham chiếu phần tử
Sau đây là các phần tử và thuộc tính mà bạn có thể thiết lập theo chính sách này:
<ServiceCallout async="false" continueOnError="false" enabled="true" name="Service-Callout-1"> <DisplayName>Custom label used in UI</DisplayName> <Request clearPayload="true" variable="myRequest"> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Remove> <ReasonPhrase/> <StatusCode/> <Path/> <Version/> <Verb/> </Remove> <Copy> <ReasonPhrase/> <StatusCode/> <Path/> <Version/> <Verb/> </Copy> <Add> <Headers/> <QueryParams/> <FormParams/> </Add> <Set> <Headers/> <QueryParams/> <FormParams/> <Payload/> <ReasonPhrase/> <StatusCode/> <Path/> <Version/> <Verb/> </Set> </Request> <Response>calloutResponse</Response> <Timeout>30000</Timeout> <HTTPTargetConnection> <URL>http://example.com</URL> <LoadBalancer/> <SSLInfo/> <Properties/> </HTTPTargetConnection> <LocalTargetConnection> <APIProxy/> <ProxyEndpoint/> <Path/> </LocalTargetConnection> </ServiceCallout>
<ServiceCallout> thuộc tính
<ServiceCallout async="false" continueOnError="false" enabled="true" name="Service-Callout-1">
Bảng sau đây mô tả những thuộc tính chung cho tất cả phần tử mẹ của chính sách:
Thuộc tính | Mô tả | Mặc định | Sự hiện diện |
---|---|---|---|
name |
Tên nội bộ của chính sách. Giá trị của thuộc tính (Không bắt buộc) Bạn có thể dùng phần tử |
Không áp dụng | Bắt buộc |
continueOnError |
Đặt thành Đặt thành |
false | Không bắt buộc |
enabled |
Hãy đặt thành Đặt thành |
đúng | Không bắt buộc |
async |
Thuộc tính này không được dùng nữa. |
false | Không được dùng nữa |
<DisplayName> phần tử
Hãy sử dụng cùng với thuộc tính name
để gắn nhãn chính sách trong phần
trình chỉnh sửa proxy giao diện người dùng quản lý có tên ngôn ngữ tự nhiên khác.
<DisplayName>Policy Display Name</DisplayName>
Mặc định |
Không áp dụng Nếu bạn bỏ qua phần tử này, giá trị của thuộc tính |
---|---|
Sự hiện diện | Không bắt buộc |
Loại | Chuỗi |
<Request> phần tử
Chỉ định biến chứa thông báo yêu cầu được gửi từ proxy API đến dịch vụ khác. Bạn có thể tạo biến bằng một chính sách trước đó trong quy trình hoặc bạn có thể tạo biến đó cùng dòng trong chính sách Chú thích dịch vụ.
<Request clearPayload="true" variable="myRequest"> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Remove> <ReasonPhrase/> <StatusCode/> <Path/> <Version/> <Verb/> </Remove> <Copy> <ReasonPhrase/> <StatusCode/> <Path/> <Version/> <Verb/> </Copy> <Add> <Headers/> <QueryParams/> <FormParams/> </Add> <Set> <Headers/> <QueryParams/> <FormParams/> <Payload/> <ReasonPhrase/> <StatusCode/> <Path/> <Version/> <Verb/> </Set> </Request>
Cú pháp cho các thẻ <Remove>, <Copy>, <Add> và <Set> tương tự như cú pháp cho thẻ Gửi tin nhắn .
Chính sách này sẽ trả về lỗi nếu thông báo yêu cầu không giải quyết được hoặc là thông báo không hợp lệ loại thông báo yêu cầu.
Trong ví dụ đơn giản nhất, bạn truyền một biến có chứa thông báo yêu cầu được điền sẵn trước đó trong quy trình của proxy API:
<Request clearPayload="true" variable="myRequest"/>
Hoặc bạn có thể điền thông báo yêu cầu gửi đến dịch vụ bên ngoài ngay trong chính sách Chú thích dịch vụ:
<Request> <Set> <Headers> <Header name="Accept">application/json</Header> </Headers> <Verb>POST</Verb> <Payload contentType="application/json">{"message":"my test message"}</Payload> </Set> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> </Request>
Mặc định | Nếu bạn bỏ qua phần tử Yêu cầu hoặc bất kỳ thuộc tính nào của phần tử này, Edge sẽ gán phần tử
các giá trị mặc định sau đây:
<Request clearPayload="true" variable="servicecallout.request"/> Hãy cùng xem ý nghĩa của các giá trị mặc định này. Trước tiên,
Điều quan trọng là bạn phải biết tên mặc định này nếu đang sử dụng tính năng che giấu dữ liệu – nếu bạn bỏ qua tên biến,
bạn cần thêm |
Sự hiện diện | Không bắt buộc. |
Loại | Không áp dụng |
Thuộc tính
Thuộc tính | Mô tả | Mặc định | Sự hiện diện |
---|---|---|---|
biến |
Tên của biến sẽ chứa thông báo yêu cầu. |
servicecallout.request |
Không bắt buộc |
clearPayload |
Nếu là Thiết lập phương thức clearPayload lựa chọn thành false chỉ khi đưa ra thông báo yêu cầu sau khi Chú thích dịch vụ là thực thi. |
đúng | Không bắt buộc |
<Request>/<IgnoreUnresolvedVariables> phần tử
Khi bạn đặt chính sách này thành true, chính sách sẽ bỏ qua mọi lỗi biến chưa được giải quyết trong yêu cầu.
<Request clearPayload="true" variable="myRequest"> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> </Request>
Mặc định | false |
Sự hiện diện | Không bắt buộc |
Loại | Boolean |
<Response> phần tử
Thêm phần tử này khi logic proxy API yêu cầu phản hồi từ lệnh gọi từ xa cho tiếp tục xử lý.
Khi có phần tử này, phần tử này sẽ chỉ định tên của biến chứa tin nhắn phản hồi nhận được từ dịch vụ bên ngoài. Phản hồi từ mục tiêu được chỉ định cho biến chỉ khi chính sách đọc thành công toàn bộ phản hồi. Nếu cuộc gọi từ xa không thành công vì bất kỳ lý do gì thì chính sách sẽ trả về lỗi.
Nếu phần tử này bị bỏ qua, proxy API sẽ không chờ phản hồi; Luồng proxy API
tiếp tục thực thi với bất kỳ bước luồng tiếp theo nào. Ngoài ra, để nêu rõ rằng việc không
Response
, phản hồi từ mục tiêu không thể được xử lý bằng
các bước tiếp theo và không có cách nào để luồng proxy phát hiện lỗi trong cuộc gọi từ xa.
Trường hợp sử dụng phổ biến để bỏ qua phần tử Response
khi sử dụng ServiceAnnotation: để ghi nhật ký
thư đến hệ thống bên ngoài.
<Response>calloutResponse</Response>
Mặc định | NA |
Sự hiện diện | Không bắt buộc |
Loại | Chuỗi |
<Hết thời gian chờ> phần tử
Thời gian tính bằng mili giây mà Chính sách chú thích dịch vụ sẽ chờ phản hồi từ . Bạn không thể đặt giá trị này một cách linh động trong thời gian chạy. Nếu Chú thích dịch vụ hết thời gian chờ, HTTP 500 được trả về, chính sách không thành công và proxy API chuyển sang trạng thái lỗi, như mô tả trong phần Xử lý lỗi.
<Timeout>30000</Timeout>
Mặc định | 55.000 mili giây (55 giây), chế độ cài đặt thời gian chờ HTTP mặc định cho Apigee Cạnh |
Sự hiện diện | Không bắt buộc |
Loại | Số nguyên |
<HTTPTargetConnection> phần tử
Cung cấp thông tin chi tiết về truyền tải như thuộc tính URL, TLS/SSL và HTTP. Xem
Tài liệu tham khảo về cấu hình <TargetEndpoint>
.
<HTTPTargetConnection> <URL>http://example.com</URL> <LoadBalancer/> <SSLInfo/> <Properties/> </HTTPTargetConnection>
Mặc định | Không áp dụng |
Sự hiện diện | Bắt buộc |
Loại | Không áp dụng |
<HTTPTargetConnection>/<URL> phần tử
URL đến dịch vụ được gọi:
<HTTPTargetConnection> <URL>http://example.com</URL> </HTTPTargetConnection>
Bạn có thể cung cấp một phần của URL một cách linh động bằng một biến. Tuy nhiên, phần giao thức của URL, http:// dưới đây, không được do một biến chỉ định. Trong ví dụ tiếp theo, bạn sử dụng một biến để chỉ định giá trị của truy vấn tham số:
<URL>http://example.com/forecastrss?w=${request.header.woeid}</URL>
Hoặc đặt một phần đường dẫn URL bằng một biến:
<URL>http://example.com/{request.resourcePath}?w=${request.header.woeid}</URL>
Nếu bạn muốn dùng một biến để chỉ định miền và cổng của URL, hãy dùng một biến chỉ cho miền và cổng và biến thứ hai cho bất kỳ phần nào khác của URL:
<URL>http://{request.dom_port}/{request.resourcePath}</URL>
Mặc định | Không áp dụng |
Sự hiện diện | Bắt buộc |
Loại | Chuỗi |
<HTTPTargetConnection>/<SSLInfo> phần tử
Cấu hình TLS/SSL cho dịch vụ phụ trợ. Để được trợ giúp về cấu hình TLS/SSL, 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ư) và "Cấu hình điểm cuối đích TLS/SSL" trong tài liệu tham khảo về cấu hình proxy API.
<HTTPTargetConnection> <URL>https://example.com</URL> <SSLInfo> <Enabled>true</Enabled> <ClientAuthEnabled>true</ClientAuthEnabled> <KeyStore>ref://mykeystoreref</KeyStore> ## Use of a reference is recommended <KeyAlias>myKey</KeyAlias> <TrustStore>myTruststore</TrustStore> <Ciphers/> <Protocols/> </SSLInfo> </HTTPTargetConnection>
Mặc định | Không áp dụng |
Sự hiện diện | Không bắt buộc |
Loại | Không áp dụng |
<HTTPTargetConnection>/<Properties> phần tử
Các thuộc tính truyền tải HTTP đến dịch vụ phụ trợ. Để biết thêm thông tin, hãy xem Tài liệu tham khảo về thuộc tính điểm cuối.
<HTTPTargetConnection> <URL>http://example.com</URL> <Properties> <Property name="allow.http10">true</Property> <Property name="request.retain.headers"> User-Agent,Referer,Accept-Language </Property> </Properties> </HTTPTargetConnection>
Mặc định | Không áp dụng |
Sự hiện diện | Không bắt buộc |
Loại | Không áp dụng |
<HTTPTargetConnection>/<LoadBalancer> phần tử
Gọi một hoặc nhiều máy chủ mục tiêu và cân bằng tải trên các máy chủ đó. Xem Mục tiêu cuộc gọi máy chủ trong phần Mẫu. Xem thêm bài viết Cân bằng tải trên phần phụ trợ máy chủ. Xem thêm cộng đồng này bài đăng thảo luận về các cách gọi máy chủ mục tiêu từ cả chính sách Chú thích dịch vụ và bằng cách sử dụng Quy tắc tuyến đường.
<HTTPTargetConnection> <LoadBalancer> <Algorithm>RoundRobin</Algorithm> <Server name="httpbin"/> <Server name="yahoo"/> </LoadBalancer> <Path>/get</Path> </HTTPTargetConnection>
Mặc định | Không áp dụng |
Sự hiện diện | Không bắt buộc |
Loại | Không áp dụng |
<LocalTargetConnection> phần tử
Chỉ định một proxy cục bộ -- tức là một proxy trong cùng một tổ chức và môi trường -- với mục tiêu của chú thích dịch vụ.
Để xác định rõ hơn mục tiêu, hãy sử dụng phần tử <APIProxy>
và <ProxyEndpoint>
hoặc phần tử <Path>
.
<LocalTargetConnection> <APIProxy/> <ProxyEndpoint/> <Path/> </LocalTargetConnection>
Mặc định | Không áp dụng |
Sự hiện diện | Bắt buộc |
Loại | Không áp dụng |
<LocalTargetConnection>/<APIProxy> phần tử
Tên của proxy API là mục tiêu của lệnh gọi cục bộ. Proxy phải ở cùng một nơi tổ chức và môi trường làm proxy thực hiện cuộc gọi.
<LocalTargetConnection> <APIProxy>data-manager</APIProxy> <ProxyEndpoint>default</ProxyEndpoint> </LocalTargetConnection>
Cùng với phần tử <APIProxy>
, hãy thêm phần tử
Phần tử <ProxyEndpoint>
để chỉ định tên của điểm cuối proxy cần
được nhắm mục tiêu cho cuộc gọi.
<LocalTargetConnection> <APIProxy/> <ProxyEndpoint/> </LocalTargetConnection>
Mặc định | Không áp dụng |
Sự hiện diện | Bắt buộc |
Loại | Chuỗi |
<LocalTargetConnection>/<ProxyEndpoint> phần tử
Tên của điểm cuối proxy phải là mục tiêu của cuộc gọi. Đây là điểm cuối proxy trong
proxy API được chỉ định với phần tử <APIProxy>
.
<LocalTargetConnection> <APIProxy>data-manager</APIProxy> <ProxyEndpoint>default</ProxyEndpoint> </LocalTargetConnection>
Mặc định | Không áp dụng |
Sự hiện diện | Không bắt buộc |
Loại | Không áp dụng |
<LocalTargetConnection>/<Path> phần tử
Đường dẫn đến điểm cuối đang được nhắm mục tiêu. Điểm cuối phải tham chiếu đến một proxy trong cùng tổ chức và môi trường làm proxy thực hiện cuộc gọi.
Sử dụng cặp này thay vì cặp <APIProxy>/<ProxyEndpoint>
khi bạn không không
biết -- hoặc không thể dựa vào -- tên proxy. Lộ trình đó có thể là một mục tiêu đáng tin cậy.
<LocalTargetConnection> <Path>/data-manager</Path> </LocalTargetConnection>
Mặc định | Không áp dụng |
Sự hiện diện | Không bắt buộc |
Loại | Không áp dụng |
Giản đồ
Biến luồng
Các biến luồng hỗ trợ hành vi động của các chính sách và Luồng trong thời gian chạy, dựa trên HTTP tiêu đề, nội dung thư hoặc Ngữ cảnh luồng. Hiện có các biến Luồng được xác định trước sau đây sau khi thực thi chính sách Chú thích dịch vụ. Để biết thêm thông tin về Biến luồng, hãy xem Tài liệu tham khảo về biến.
Chú thích dịch vụ có yêu cầu và phản hồi riêng. Bạn có thể truy cập vào dữ liệu đó thông qua
biến. Vì thông điệp chính đang dùng request.*
và
Tiền tố biến response.*
, hãy sử dụng myrequest.*
và
Tiền tố calloutResponse.*
(mặc định trong cấu hình Chú thích dịch vụ) thành
nhận dữ liệu tin nhắn riêng cho Chú thích dịch vụ. Ví dụ đầu tiên trong bảng sau cho thấy
cách bạn sẽ nhận được tiêu đề HTTP trong Chú thích dịch vụ.
Biến | Mô tả |
---|---|
Sau đây là ví dụ về cách nhận tiêu đề phản hồi và yêu cầu Chú thích dịch vụ tương tự như cách bạn nhận tiêu đề từ yêu cầu và phản hồi chính.
trong đó calloutResponse là tên biến cho Phản hồi trong Dịch vụ Chú thích và myRequest là tên biến của Yêu cầu. Ví dụ:
trả về tiêu đề Content-Length của phản hồi Chú thích dịch vụ. |
Phạm vi: Từ Chú thích dịch vụ trở đi Tiêu đề thông báo trong yêu cầu hoặc phản hồi Chú thích dịch vụ. Ví dụ: nếu API mục tiêu proxy là http://example.com và mục tiêu Chú thích dịch vụ là http://mocktarget.apigee.net, các biến này là tiêu đề của chú thích http://mocktarget.apigee.net. |
servicecallout.requesturi |
Phạm vi: Từ yêu cầu Chú thích dịch vụ trở đi URI TargetEndpoint cho chính sách ServiceAnnotation. URI là URL TargetEndpoint mà không có thông số kỹ thuật của miền và giao thức. |
servicecallout.{policy-name}.target.url |
Phạm vi: Từ yêu cầu Chú thích dịch vụ trở đi URL mục tiêu của Chú thích dịch vụ. |
trong đó |
Phạm vi: Từ phản hồi Chú thích dịch vụ trở đi Nội dung phản hồi trong Chú thích dịch vụ. |
servicecallout.{policy-name}.expectedcn |
Phạm vi: Từ yêu cầu Chú thích dịch vụ trở đi Tên chung dự kiến của TargetEndpoint như được đề cập trong một chú thích dịch vụ . Giá trị này chỉ có ý nghĩa khi TargetEndpoint tham chiếu đến một TLS/SSL điểm cuối. |
servicecallout.{policy-name}.failed |
Phạm vi: Từ phản hồi Chú thích dịch vụ trở đi Giá trị boolean cho biết chính sách thành công, false hay không thành công, true (đúng). |
Lỗi
Phần này mô tả các mã lỗi và thông báo lỗi được trả về cũng như các biến lỗi do Edge đặt khi chính sách này kích hoạt lỗi. Thông tin này rất quan trọng nếu bạn đang phát triển các quy tắc lỗi để xử lý lỗi. Để tìm hiểu thêm, hãy xem bài viết Những điều bạn cần biết về lỗi chính sách và Xử lý lỗi.
Lỗi thời gian chạy
Những lỗi này có thể xảy ra khi chính sách này thực thi.
Mã lỗi | Trạng thái HTTP | Nguyên nhân | Khắc phục |
---|---|---|---|
steps.servicecallout.ExecutionFailed |
500 |
Lỗi này có thể xảy ra khi:
|
build |
steps.servicecallout.RequestVariableNotMessageType |
500 | Biến Yêu cầu được chỉ định trong chính sách không thuộc loại Tin nhắn. Ví dụ: nếu đó là một chuỗi hoặc loại khác không phải thông báo, bạn sẽ thấy lỗi này. | build |
steps.servicecallout.RequestVariableNotRequestMessageType |
500 | Biến Yêu cầu được chỉ định trong chính sách không thuộc loại Thông báo yêu cầu. Cho ví dụ: nếu đó là loại Phản hồi thì bạn sẽ thấy lỗi này. | build |
Lỗi triển khai
Những lỗi này có thể xảy ra khi bạn triển khai proxy có chứa chính sách này.
Tên lỗi | Nguyên nhân | Khắc phục |
---|---|---|
URLMissing |
Phần tử <URL> bên trong <HTTPTargetConnection>
bị thiếu hoặc trống. |
build |
ConnectionInfoMissing |
Lỗi này xảy ra nếu chính sách không có
<HTTPTargetConnection> hoặc <LocalTargetConnection>
. |
build |
InvalidTimeoutValue |
Lỗi này xảy ra nếu giá trị <Timeout> là số âm hoặc 0. |
build |
Biến lỗi
Các biến này được đặt khi xảy ra lỗi thời gian chạy. Để biết thêm thông tin, hãy xem bài viết Những điều bạn cần biết về lỗi chính sách.
Biến | Trong đó | Ví dụ: |
---|---|---|
fault.name="fault_name" |
fault_name là tên của lỗi, như được liệt kê trong bảng Lỗi thời gian chạy ở trên. Tên lỗi là phần cuối cùng của mã lỗi. | fault.name = "RequestVariableNotMessageType" |
servicecallout.policy_name.failed |
policy_name là tên do người dùng chỉ định của chính sách gây ra lỗi. | servicecallout.SC-GetUserData.failed = true |
Ví dụ về phản hồi khi gặp lỗi
{ "fault":{ "detail":{ "errorcode":"steps.servicecallout.RequestVariableNotMessageType" }, "faultstring":"ServiceCallout[ServiceCalloutGetMockResponse]: request variable data_str value is not of type Message" } }
Ví dụ về quy tắc lỗi
<faultrule name="VariableOfNonMsgType"></faultrule><FaultRule name="RequestVariableNotMessageType"> <Step> <Name>AM-RequestVariableNotMessageType</Name> </Step> <Condition>(fault.name = "RequestVariableNotMessageType")</Condition> </FaultRule>
Chủ đề có liên quan
- Tạo hoặc sửa đổi thông báo: Chỉ định chính sách về thông báo
- Trích xuất biến: Trích xuất biến chính sách của Google
- Biến: Biến tham khảo
- Cấu hình TLS/SSL
- Định cấu hình TLS từ Edge đến phần phụ trợ (Đám mây và Đám mây riêng tư)
- "Cấu hình điểm cuối đích TLS/SSL" trong tài liệu tham khảo về cấu hình proxy API
- Thuộc tính truyền tải HTTP: Tài liệu tham khảo về thuộc tính điểm cuối
- Thay thế cho chú thích dịch vụ: HTTPClient được viết bằng JavaScript, xem Mô hình đối tượng JavaScript