Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến
Tài liệu về Apigee X. thông tin
Khi sử dụng chính sách bộ nhớ đệm, bạn cần định cấu hình bộ nhớ đệm để đảm bảo tính riêng biệt của các khoá giá trị đã lưu vào bộ nhớ đệm khoá. Khoá bộ nhớ đệm cùng với các giá trị khác mà bạn có thể định cấu hình, giúp bạn có được một phương thức đáng tin cậy để thoát chính dữ liệu mà bạn đã nhập vào. Bạn sử dụng khoá bộ nhớ đệm theo chính sách Điền bộ nhớ đệm, chính sách LookupCache, chính sách InvalidateCache và Bộ nhớ đệm của phản hồi .
Giá trị của các phần tử cấu hình --
<CacheKey>
/<KeyFragment>
, <Scope>
và
<Prefix>
– được nối với nhau để tạo một giá trị nhận dạng liên kết với
giá trị mà bạn đã đưa vào bộ nhớ đệm. Bạn sử dụng cùng một cấu hình này để truy xuất giá trị.
Với các phần tử cấu hình chính sách bộ nhớ đệm sau, bạn có thể tạo khoá bộ nhớ đệm:
Phần tử cấu hình bộ nhớ đệm | Mô tả |
---|---|
<CacheKey> /<KeyFragment> |
Sử dụng kết hợp các phần tử <CacheKey> <KeyFragment> để
chỉ định một giá trị nhận dạng duy nhất cho các mục nhập trong bộ nhớ đệm. Giá trị KeyFragment có thể là giá trị cố định tĩnh hoặc
tập hợp từ các biến. |
<Scope> hoặc <Prefix> |
Sử dụng phần tử <Scope> hoặc <Prefix> để phân tích thêm
khoá bộ nhớ đệm của không gian tên. <Scope> liệt kê một danh sách các giá trị được xác định trước.
Phần tử <Prefix> ghi đè <Scope> bằng một giá trị
do chính bạn chọn. |
Các giá trị này được nối với nhau trong biểu mẫu sau, với <Scope>
hoặc
Các giá trị <Prefix>
được phân tách với các giá trị KeyFragment bằng dấu gạch dưới kép.
Nhiều giá trị KeyFragment cũng được phân tách bằng dấu gạch dưới kép.
phạm vi | prefix__keyfragment[__keyfragment]
Với Bộ nhớ đệm của phản hồi , bạn có thể tuỳ ý thêm khoá bộ nhớ đệm này với các giá trị lấy từ phản hồi Accept (Chấp nhận) .
Dùng <CacheKey>
Phần tử <CacheKey>
định cấu hình cách Edge tạo một giá trị nhận dạng duy nhất
(khoá) cho mỗi mục trong bộ nhớ đệm mà công cụ đó tạo. Khi truy xuất giá trị đã lưu vào bộ nhớ đệm, Edge sẽ sử dụng bộ nhớ đệm này
để tìm giá trị chính xác. Trong chính sách Bộ nhớ đệm phản hồi, một cấu hình xác định khoá
cho cả việc lưu vào bộ nhớ đệm và truy xuất. Trong chính sách ĐiềnCache và LookupCache, mỗi chính sách phải
có các phần tử <CacheKey>
giống nhau để đảm bảo rằng giá trị được truy xuất từ
tương ứng với một giá trị được đặt ở đó.
Phần tử <CacheKey>
có thể bao gồm nhiều
Phần tử <KeyFragment>
. Trong thời gian chạy, giá trị được chỉ định bởi
Các phần tử <KeyFragment>
được nối với 2 dấu gạch dưới giữa chúng trong
tạo một phần của khoá bộ nhớ đệm.
Ví dụ: cấu hình sau đây tạo ra một giá trị là hello__world
để sử dụng
trong khoá bộ nhớ đệm:
<CacheKey> <KeyFragment>hello</KeyFragment> <KeyFragment>world</KeyFragment> <CacheKey>
Bạn cũng có thể sử dụng các giá trị biến trong khoá bộ nhớ đệm bằng cách tham chiếu biến trong một
Phần tử <KeyFragment>
, như minh hoạ dưới đây:
<KeyFragment ref="variable_name"/>
Ví dụ: để làm cho giá trị khoá bộ nhớ đệm kết hợp với Loại-Nội dung của thông báo yêu cầu, bạn làm như sau:
<KeyFragment ref="request.header.Content-Type"/>
Trong cấu hình sau, biến request.header.Content-Type
có phương thức
giá trị application/json
.
<CacheKey> <KeyFragment>apiAccessToken</KeyFragment> <KeyFragment ref="request.header.Content-Type" /> <KeyFragment>bar</KeyFragment> </CacheKey>
Kết quả là một khoá bộ nhớ đệm kết thúc bằng apiAccessToken__application/json__bar
.
Để biết danh sách các biến mà bạn có thể sử dụng, hãy xem bài viết Tài liệu tham khảo về biến.
Khoá bộ nhớ đệm bắt nguồn từ truy vấn tham số
Sử dụng các biến như request.queryparam.<queryparam_name> và request.querystring, bạn có thể định cấu hình khoá bộ nhớ đệm để khoá đó bao gồm các phần trong chuỗi truy vấn của yêu cầu. Cho ví dụ: URL sau sử dụng hai tham số truy vấn -- param1 và param2 -- mà bạn có thể sử dụng trong khoá bộ nhớ đệm:
http://myaccount.apigee.net/mydata?param1=value1¶m2=value2
Phần tử <CacheKey>
của bạn có thể kết hợp các giá trị này với một cấu hình
chẳng hạn như sau:
<CacheKey> <KeyFragment ref="request.queryparam.param1" /> <KeyFragment ref="request.queryparam.param2" /> <CacheKey>
Trong thời gian chạy, khoá bộ nhớ đệm sẽ bao gồm các giá trị thông số được nối với nhau, như trong sau:
other_key_parts__value1__value2
Lưu ý rằng khi bạn sử dụng biến để chèn giá trị từ các thông số, giá trị sẽ là
được nối theo thứ tự do thứ tự phần tử <KeyFragment>
đề xuất. Ngoài ra,
xin lưu ý rằng Edge sẽ chỉ sử dụng những giá trị mà bạn tham chiếu cụ thể
Phần tử <KeyFragment>
. Nếu danh sách tham số truy vấn yêu cầu của bạn thay đổi,
biến thể sẽ không được tính trong khoá bộ nhớ đệm.
Một cách thay thế là sử dụng biến request.querystring, sẽ chèn toàn bộ chuỗi của
các tham số như một phần của khoá bộ nhớ đệm. Xin lưu ý rằng mặc dù phương pháp này tính đến
tất cả các thông số, nếu thứ tự của thông số thay đổi giữa các yêu cầu thì phương thức
khoá sẽ khác nhau. Nói cách khác, param1=value1¶m2=value2
và
param2=value2¶m1=value1
không dẫn đến cùng một giá trị khoá bộ nhớ đệm.
Để biết danh sách các biến mà bạn có thể sử dụng, hãy xem bài viết Tài liệu tham khảo về biến.
Đang dùng <Scope> và <Prefix>
Các phần tử <Scope>
và <Prefix>
cung cấp cách
tăng cường khoá bằng tiền tố không gian tên. Những giá trị mà các biến này đại diện sẽ được thêm vào bộ nhớ đệm của bạn
.
Phần tử <Scope>
được sử dụng theo mặc định. Đây là một giá trị enum có các giá trị
có phạm vi từ rộng đến hẹp, trong đó hẹp nhất là mặc định. Giá trị mặc định này được sử dụng trừ phi
bạn chỉ định một giá trị khác hoặc chỉ định một giá trị phần tử <Prefix>
. Bạn có thể
ghi đè giá trị <Scope>
bằng cách sử dụng phần tử <Prefix>
, và
vì vậy, hãy chỉ định một giá trị tuỳ chỉnh
cho khoảng cách tên.
Ví dụ: giá trị <Scope>
"Toàn cầu" -- phạm vi rộng nhất -- đại diện cho
tên tổ chức và tên môi trường. Do đó, nếu proxy của bạn được triển khai trong một tổ chức có tên
"mycompany" và môi trường có tên "prod", thì giá trị thêm vào trước sẽ là
sau:
Cấu hình | Kết quả |
---|---|
<Scope>Global</Scope> |
mycompany__prod__ . |
Nếu bạn đang sử dụng Global scope với khoá bộ nhớ đệm được xác định ở trên, kết quả sẽ là sau:
Cấu hình | Kết quả |
---|---|
<Scope>Global</Scope> <CacheKey> <KeyFragment>hello</KeyFragment> <KeyFragment>world</KeyFragment> <CacheKey> |
mycompany__prod__hello__world . |
Như được mô tả trong chính sách LookupCache, phạm vi này có thể được định cấu hình để tăng đặc trưng từ Toàn cầu lên Độc quyền. Phạm vi độc quyền là phạm vi cao nhất cụ thể, từ đó thể hiện rủi ro tối thiểu về xung đột không gian tên trong một bộ nhớ đệm nhất định. Mỗi mục trong bộ nhớ đệm có phạm vi Độc quyền được thêm vào trước ở dạng sau:
orgName__envName__apiProxyName__deployedRevisionNumber__proxy|TargetName__[serializedCacheKey]
Ví dụ: khoá bộ nhớ đệm được tạo bằng cách sử dụng giá trị Dành riêng cho <Scope>
sẽ có dạng như sau:
apifactory__test__weatherapi__16__default__apiAccessToken