Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về Apigee X. thông tin
Định cấu hình cách truy xuất các giá trị được lưu vào bộ nhớ đệm trong thời gian chạy.
Chính sách này dùng để lưu vào bộ nhớ đệm ngắn hạn cho mục đích chung. Chính sách này được sử dụng cùng với Chính sách điền bộ nhớ đệm (để ghi các mục) và Chính sách vô hiệu hoá bộ nhớ đệm (để vô hiệu hoá các mục).
Để lưu các phản hồi của tài nguyên phụ trợ vào bộ nhớ đệm, hãy xem Chính sách về bộ nhớ đệm phản hồi.
Tham chiếu phần tử
Sau đây là danh sách các phần tử mà bạn có thể định cấu hình trên chính sách này.
<LookupCache async="false" continueOnError="false" enabled="true" name="Lookup-Cache-1"> <DisplayName>Lookup Cache 1</DisplayName> <Properties/> <CacheKey> <Prefix/> <KeyFragment ref=""/> </CacheKey> <!-- Omit this element if you're using the included shared cache. --> <CacheResource/> <CacheLookupTimeoutInSeconds/> <Scope>Exclusive</Scope> <AssignTo>flowVar</AssignTo> </LookupCache>
Bộ nhớ đệm dùng chung được thêm theo mặc định. Để sử dụng bộ nhớ đệm dùng chung, hãy bỏ qua phần tử <CacheResource>
trong cấu hình chính sách này.
Để biết thêm về kho dữ liệu cơ bản, hãy xem phần Bên trong bộ nhớ đệm. Để biết thêm về cách định cấu hình bộ nhớ đệm, hãy xem phần Tạo và chỉnh sửa bộ nhớ đệm môi trường.
Thuộc tính <LookupCache>
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 |
Phần tử <AssignTo>
Chỉ định biến nơi mục nhập bộ nhớ đệm được chỉ định sau khi truy xuất từ bộ nhớ đệm. Biến phải có thể ghi. Nếu thao tác tra cứu bộ nhớ đệm không truy xuất được giá trị, thì biến sẽ không được đặt.
<AssignTo>variable_to_receive_cached_value</AssignTo>
Mặc định: |
Không áp dụng |
Trạng thái hiện diện: |
Bắt buộc |
Loại: |
Chuỗi |
Phần tử <CacheKey>
Định cấu hình con trỏ duy nhất đến một phần dữ liệu được lưu trữ trong bộ nhớ đệm.
<CacheKey> <Prefix>string</Prefix> <KeyFragment ref="variable_name" /> <KeyFragment>literal_string</KeyFragment> </CacheKey>
Mặc định: |
Không áp dụng |
Trạng thái hiện diện: |
Bắt buộc |
Loại: |
Không áp dụng |
<CacheKey>
tạo tên cho từng phần dữ liệu được lưu trữ trong bộ nhớ đệm.
Trong thời gian chạy, các giá trị <KeyFragment>
được thêm vào đầu bằng giá trị phần tử <Scope>
hoặc giá trị <Prefix>
. Ví dụ: kết quả sau đây sẽ dẫn đến khoá bộ nhớ đệm là UserToken__apiAccessToken__
<value_of_client_id>:
<CacheKey> <Prefix>UserToken</Prefix> <KeyFragment>apiAccessToken</KeyFragment> <KeyFragment ref="request.queryparam.client_id" /> </CacheKey>
Bạn sử dụng phần tử <CacheKey>
cùng với <Prefix>
và <Scope>
. Để biết thêm thông tin, hãy xem phần Xử lý khoá bộ nhớ đệm.
Phần tử <CacheLookupTimeoutInSeconds>
Chỉ định số giây sau đó, một lượt tra cứu bộ nhớ đệm không thành công sẽ được coi là một lượt thiếu bộ nhớ đệm. Nếu điều này xảy ra, luồng sẽ tiếp tục theo đường dẫn thiếu bộ nhớ đệm.
<CacheLookupTimeoutInSeconds>30</CacheLookupTimeoutInSeconds>
Mặc định: |
30 |
Trạng thái hiện diện: |
Không bắt buộc |
Loại: |
Số nguyên |
Phần tử<CacheResource>
Chỉ định bộ nhớ đệm nơi lưu trữ thư.
Bỏ qua hoàn toàn phần tử này nếu chính sách này (và các chính sách PopulateCache và InvalidateCache tương ứng) đang sử dụng bộ nhớ đệm dùng chung được đưa vào.
<CacheResource>cache_to_use</CacheResource>
Mặc định: |
Không áp dụng |
Trạng thái hiện diện: |
Không bắt buộc |
Loại: |
Chuỗi |
Để biết thêm về cách định cấu hình bộ nhớ đệm, hãy xem phần Tạo và chỉnh sửa bộ nhớ đệm môi trường.
Phần tử <CacheKey>/<KeyFragment>
Chỉ định một giá trị cần đưa vào khoá bộ nhớ đệm, tạo một không gian tên để so khớp các yêu cầu với phản hồi được lưu vào bộ nhớ đệm.
<KeyFragment ref="variable_name"/> <KeyFragment>literal_string</KeyFragment>
Mặc định: |
Không áp dụng |
Trạng thái hiện diện: |
Không bắt buộc |
Loại: |
Không áp dụng |
Đây có thể là khoá (tên tĩnh mà bạn cung cấp) hoặc giá trị (mục nhập động được đặt bằng cách tham chiếu đến một biến). Tất cả các mảnh được chỉ định kết hợp (cộng với tiền tố) được nối với nhau để tạo khoá bộ nhớ đệm.
<KeyFragment>apiAccessToken</KeyFragment> <KeyFragment ref="request.queryparam.client_id" />
Bạn sử dụng phần tử <KeyFragment>
cùng với <Prefix>
và <Scope>
. Để biết thêm thông tin, hãy xem phần Xử lý khoá bộ nhớ đệm.
Thuộc tính
Thuộc tính | Loại | Mặc định | Bắt buộc | Mô tả |
---|---|---|---|---|
tham chiếu | chuỗi | Không |
Biến để lấy giá trị. Không được sử dụng nếu phần tử này chứa giá trị cố định. |
Phần tử <CacheKey>/<Prefix>
Chỉ định một giá trị để dùng làm tiền tố khoá bộ nhớ đệm.
<Prefix>prefix_string</Prefix>
Mặc định: |
Không áp dụng |
Trạng thái hiện diện: |
Không bắt buộc |
Loại: |
Chuỗi |
Sử dụng giá trị này thay vì <Scope>
khi bạn muốn chỉ định giá trị của riêng mình thay vì giá trị được liệt kê <Scope>
. Nếu được xác định, <Prefix>
sẽ thêm giá trị khoá bộ nhớ đệm vào đầu các mục nhập được ghi vào bộ nhớ đệm. Giá trị phần tử <Prefix>
sẽ ghi đè giá trị phần tử <Scope>
.
Bạn sử dụng phần tử <Prefix>
cùng với <CacheKey>
và <Scope>
. Để biết thêm thông tin, hãy xem phần Xử lý khoá bộ nhớ đệm.
Phần tử <Scope>
Dùng để tạo tiền tố cho khoá bộ nhớ đệm khi không cung cấp phần tử <Prefix>
trong phần tử <CacheKey>
.
<Scope>scope_enumeration</Scope>
Mặc định: |
"Độc quyền" |
Trạng thái hiện diện: |
Không bắt buộc |
Loại: |
Chuỗi |
Chế độ cài đặt <Scope>
xác định khoá bộ nhớ đệm được thêm vào đầu theo giá trị <Scope>
. Ví dụ: khoá bộ nhớ đệm sẽ có dạng sau khi phạm vi được đặt thành Exclusive
: orgName__envName__applicationName__proxy|TargetName__ [ serializedCacheKey ].
Nếu có phần tử <Prefix>
trong <CacheKey>
, thì phần tử này sẽ thay thế giá trị phần tử <Scope>
. Các giá trị hợp lệ bao gồm các liệt kê bên dưới.
Bạn sử dụng phần tử <Scope>
cùng với <CacheKey>
và <Prefix>
. Để biết thêm thông tin, hãy xem phần Xử lý khoá bộ nhớ đệm.
Giá trị được chấp nhận
Global |
Khoá bộ nhớ đệm được chia sẻ trên tất cả các proxy API được triển khai trong môi trường. Khoá bộ nhớ đệm được thêm vào đầu ở dạng orgName __ envName __. Nếu bạn xác định mục nhập |
Application |
Tên proxy API được dùng làm tiền tố. Khoá bộ nhớ đệm được thêm vào đầu dưới dạng orgName__envName__applicationName. |
Proxy |
Cấu hình ProxyEndpoint được dùng làm tiền tố. Khoá bộ nhớ đệm được thêm vào đầu ở dạng orgName__envName__applicationName__proxyEndpointName . |
Target |
Cấu hình TargetEndpoint được dùng làm tiền tố. Khoá bộ nhớ đệm được thêm vào đầu ở dạng orgName__envName__applicationName__targetEndpointName . |
Exclusive |
Mặc định. Đây là cách cụ thể nhất và do đó có nguy cơ xung đột không gian tên thấp nhất trong một bộ nhớ đệm nhất định. Tiền tố có một trong hai dạng:
Khoá bộ nhớ đệm được thêm vào đầu ở dạng orgName__envName__applicationName__proxyNameITargetName Ví dụ: chuỗi đầy đủ có thể có dạng như sau: apifactory__test__weatherapi__16__default__apiAccessToken |
Lưu ý về cách sử dụng
Sử dụng chính sách này để lưu vào bộ nhớ đệm cho mục đích chung. Trong thời gian chạy, chính sách LookupCache sẽ truy xuất giá trị từ bộ nhớ đệm, gán giá trị đó cho biến mà bạn chỉ định bằng phần tử AssignTo (nếu không truy xuất được giá trị nào, biến sẽ không được đặt). Phương thức này tìm kiếm giá trị dựa trên khoá bộ nhớ đệm được tạo thông qua cấu hình kết hợp các phần tử CacheKey và Scope. Nói cách khác, để truy xuất một giá trị cụ thể được thêm vào bộ nhớ đệm bằng chính sách PopulateCache, chính sách LookupCache phải có các phần tử liên quan đến khoá bộ nhớ đệm được định cấu hình giống như chính sách PopulateCache.
Tính năng lưu vào bộ nhớ đệm cho mục đích chung bằng chính sách Điền bộ nhớ đệm, chính sách LookupCache và chính sách InvalidateCache sử dụng bộ nhớ đệm mà bạn định cấu hình hoặc bộ nhớ đệm dùng chung được đưa vào theo mặc định. Trong hầu hết các trường hợp, bộ nhớ đệm dùng chung cơ bản sẽ đáp ứng nhu cầu của bạn. Để sử dụng bộ nhớ đệm mặc định, bạn chỉ cần bỏ qua phần tử <CacheResource>
.
Để biết thêm về cách định cấu hình bộ nhớ đệm, hãy xem phần Tạo và chỉnh sửa bộ nhớ đệm môi trường. Để biết thêm về kho dữ liệu cơ bản, hãy xem phần Bên trong bộ nhớ đệm.
Biến flow
Bạn có thể sử dụng biến Flow để định cấu hình hành vi thời gian chạy động cho các chính sách và flow, dựa trên tiêu đề HTTP hoặc nội dung thông báo hoặc ngữ cảnh có trong Flow. Để biết thêm thông tin về biến luồng, hãy xem phần Tham chiếu biến.
Các biến Flow được xác định trước sau đây sẽ có sẵn sau khi bạn tuỳ chỉnh hành vi của bộ nhớ đệm mà bạn xác định trong chính sách LookupCache.
Biến | Loại | Quyền | Mô tả |
---|---|---|---|
lookupcache.{policy-name}.cachename | Chuỗi | Chỉ có thể đọc | Trả về tên bộ nhớ đệm được dùng trong chính sách. |
lookupcache.{policy-name}.cachekey | Chuỗi | Chỉ có thể đọc | Trả về khoá đã sử dụng. |
lookupcache.{policy-name}.cachehit | Boolean | Chỉ có thể đọc | True nếu chính sách tìm thấy giá trị cho khoá bộ nhớ đệm được chỉ định. |
lookupcache.{policy-name}.assignto | Chuỗi | Chỉ có thể đọc | Trả về biến được chỉ định bộ nhớ đệm. |
Mã lỗi
Phần này mô tả các thông báo lỗi và biến luồng được thiết lập khi chính sách này kích hoạt lỗi. Thông tin này rất quan trọng mà bạn cần biết nếu đang phát triển các quy tắc lỗi cho một proxy. Để tìm hiểu thêm, hãy xem Những điều bạn cần biết về lỗi chính sách và Xử lý lỗi.
Tiền tố mã lỗi
Không áp dụng
Lỗi thời gian chạy
Chính sách này không gửi bất kỳ lỗi thời gian chạy nào.
Lỗi triển khai
Những lỗi này có thể xảy ra khi bạn triển khai proxy chứa chính sách này.
Tên lỗi | Nguyên nhân | Khắc phục |
---|---|---|
InvalidCacheResourceReference |
Lỗi này xảy ra nếu phần tử <CacheResource> được đặt thành một tên không tồn tại trong môi trường nơi proxy API đang được triển khai. |
build |
InvalidTimeout |
Nếu bạn đặt phần tử <CacheLookupTimeoutInSeconds> thành số âm, thì proxy API sẽ không triển khai được. |
build |
CacheNotFound |
Lỗi này xảy ra nếu bộ nhớ đệm cụ thể được đề cập trong thông báo lỗi chưa được tạo trên một thành phần cụ thể của Trình xử lý thông báo. | build |
Biến lỗi
Không áp dụng
Ví dụ về phản hồi lỗi
Không áp dụng