Khắc phục sự cố khi triển khai chính sách Tra cứu bộ nhớ đệm

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

InvalidTimeout

Thông báo Lỗi

Việc triển khai proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge không thành công và xuất hiện thông báo lỗi sau:

Error Saving Revision revision_number
CacheLookupTimeoutInSeconds value value should be greater than zero.

Thông báo lỗi mẫu

Error Saving Revision 2
CacheLookupTimeoutInSeconds -1 value should be greater than zero.

Ảnh chụp màn hình ví dụ về lỗi

Nguyên nhân

Nếu phần tử <CacheLookupTimeoutInSeconds> của chính sách LookupCache được đặt thành một số âm, thì việc triển khai proxy API sẽ không thành công.

Ví dụ: nếu phần tử <CacheLookupTimeoutInSeconds>-1, thì việc triển khai proxy API sẽ không thành công.

Chẩn đoán

  1. Xác định giá trị không hợp lệ được chỉ định cho phần tử <CacheLookupTimeoutInSeconds> trong chính sách LookupCache. Bạn có thể tìm thấy thông tin này trong thông báo lỗi. Ví dụ: trong lỗi sau, giá trị không hợp lệ được dùng cho phần tử <CacheLookupTimeoutInSeconds>-1:

    CacheLookupTimeoutInSeconds -1 value should be greater than zero.
    
  2. Kiểm tra tất cả các chính sách LookupCache trong API Proxy cụ thể nơi xảy ra lỗi. Có thể có một hoặc nhiều chính sách LookupCache trong đó phần tử <CacheLookupTimeoutInSeconds> được chỉ định. Xác định chính sách LookUpCache nơi giá trị không hợp lệ (được xác định ở bước 1 ở trên) được chỉ định cho phần tử <CacheLookupTimeoutInSeconds>.

    Ví dụ: cấu hình chính sách sau đây chỉ định giá trị của <CacheLookupTimeoutInSeconds> của -1, khớp với thông báo lỗi:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <LookupCache async="false" continueOnError="false" enabled="true" name="LookupCache-Token">
        <DisplayName>LookupCache-Token</DisplayName>
        <Properties/>
        <CacheKey>
            <Prefix/>
            <KeyFragment ref="request.queryparam.client_id"/>
        </CacheKey>
        <CacheLookupTimeoutInSeconds>-1</CacheLookupTimeoutInSeconds>
        <Scope>Exclusive</Scope>
        <ExpirySettings>
            <TimeoutInSec>3600</TimeoutInSec>
        </ExpirySettings>
        <AssignTo>usertoken</AssignTo>
    </LookupCache>
    
  3. Nếu <CacheLookupTimeoutInSeconds> được chỉ định là một số nguyên âm, thì đó là nguyên nhân gây ra lỗi.

Độ phân giải

Đảm bảo rằng giá trị cho phần tử <CacheLookupTimeoutInSeconds> của chính sách LookupCache luôn được chỉ định là một số nguyên không âm.

Để sửa chính sách LookupCache mẫu như minh hoạ ở trên, bạn có thể sửa đổi phần tử <CacheLookupTimeoutInSeconds> thành 30.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<LookupCache async="false" continueOnError="false" enabled="true" name="LookupCache-Token">
    <DisplayName>LookupCache-Token</DisplayName>
    <Properties/>
    <CacheKey>
        <Prefix/>
        <KeyFragment ref="request.queryparam.client_id"/>
    </CacheKey>
    <CacheResource>tokencache</CacheResource>
    <CacheLookupTimeoutInSeconds>30</CacheLookupTimeoutInSeconds>
    <Scope>Exclusive</Scope>
    <ExpirySettings>
        <TimeoutInSec>3600</TimeoutInSec>
    </ExpirySettings>
    <AssignTo>usertoken</AssignTo>
</LookupCache>

InvalidCacheResourceReference

Thông báo Lỗi

Việc triển khai proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge không thành công và xuất hiện thông báo lỗi sau:

Error Deploying Revision revision_number to environment
Invalid cache resource reference [cache_resource] in Step definition [populate_cache_policy_name]. Context Revision:[revision_number];APIProxy:ResponseCache;Organization:[organization];Environment:[environment]

Thông báo lỗi mẫu

Error Deploying Revision 2 to test
Invalid cache resource reference tokencache in Step definition LookupCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test

Ảnh chụp màn hình ví dụ về lỗi

Nguyên nhân

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 mà proxy API đang được triển khai.

Chẩn đoán

  1. Xác định bộ nhớ đệm không hợp lệ được dùng trong phần tử <CacheResource> của chính sách LookupCache và môi trường xảy ra lỗi. Bạn có thể tìm thấy cả hai mục này trong thông báo lỗi. Ví dụ: trong lỗi sau, tên của bộ nhớ đệm không hợp lệ là tokencache và tên môi trường là test.

    Invalid cache resource reference tokencache in Step definition LookupCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
    
  2. Kiểm tra tất cả các chính sách LookupCache trong API Proxy cụ thể nơi xảy ra lỗi. Xác định chính sách LookupCache cụ thể mà bộ nhớ đệm không hợp lệ (được xác định ở bước 1) được chỉ định trong phần tử <CacheResource>.

    Ví dụ: chính sách sau đây chỉ định giá trị của <CacheResource>tokencache, khớp với thông báo lỗi:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <LookupCache async="false" continueOnError="false" enabled="true" name="LookupCache-Token">
        <DisplayName>LookupCache-Token</DisplayName>
        <Properties/>
        <CacheKey>
            <Prefix/>
            <KeyFragment ref="request.queryparam.client_id"/>
        </CacheKey>
        <CacheResource>tokencache</CacheResource>
        <CacheLookupTimeoutInSeconds/>
        <Scope>Exclusive</Scope>
        <ExpirySettings>
            <TimeoutInSec>3600</TimeoutInSec>
        </ExpirySettings>
        <AssignTo>usertoken</AssignTo>
    </LookupCache>
    
  3. Xác minh xem bộ nhớ đệm (được xác định ở bước 1) đã được xác định trong môi trường cụ thể (được xác định ở bước 1) hay chưa.

    Trong giao diện người dùng Edge, hãy chuyển đến ADMIN > Environment > test (Quản trị > Môi trường > kiểm thử) rồi kiểm tra xem bộ nhớ đệm có tồn tại trong thẻ Caches (Bộ nhớ đệm) của Environment Configuration (Cấu hình môi trường) hay không. Nếu bộ nhớ đệm không tồn tại, thì đó là nguyên nhân gây ra lỗi.

    Ví dụ: trong ảnh chụp màn hình bên dưới, bạn sẽ thấy rằng bộ nhớ đệm có tên tokencache không tồn tại.

    Vì bộ nhớ đệm có tên tokencache không được xác định trong môi trường test, nên bạn sẽ gặp lỗi:

    Invalid cache resource reference tokencache in Step definition LookupCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
    
    

Độ phân giải

Đảm bảo rằng tên bộ nhớ đệm được chỉ định trong phần tử <CacheResource> đã được tạo trong môi trường mà bạn muốn triển khai proxy API.

Hãy tham khảo bài viết Tạo và chỉnh sửa bộ nhớ đệm môi trường để biết thông tin về cách tạo bộ nhớ đệm.

CacheNotFound

Thông báo Lỗi

Việc triển khai proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge sẽ dẫn đến một thông báo lỗi như thế này và trạng thái triển khai của Proxy API được đánh dấu là đã triển khai một phần:

Error: Cache : cache_resource, not found in organization : organization__environment.

Thông báo lỗi mẫu

Error Cache : configCache, not found in organization : kkalckstein-eval__test

Nguyên nhân

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 Message Processor cụ thể.

Độ phân giải

Nếu bạn là người dùng Đám mây riêng, vui lòng làm theo hướng dẫn bên dưới:

  1. Liệt kê các lượt triển khai proxy API và xác định Bộ xử lý thông báo nào gặp lỗi steps.cache.CacheNotFound.

    curl -u $USERID:$USERPASSWORD http://:8080/v1/organizations//environments//apis//revisions//deployments

    Đầu ra mẫu

    {
      "aPIProxy" : "TestCache",
      "environment" : [ {
        "configuration" : {
          "basePath" : "/",
          "configVersion" : "SHA-512:45d3f39783414d3859bf2dec4135d8f5f9960ee6b2d361db2799c82693a8e3f8b95dbbb37c547eb3c0a3819d8ca51727f390502bcaefdf1f113263521a9023b6",
          "steps" : [ ]
        },
        "name" : "prod",
        "server" : [ {
          "pod" : {
            "name" : "pod1",
            "region" : "us-central1"
          },
          "status" : "deployed",
          "type" : [ "message-processor" ],
          "uUID" : "f2e5e34a-5630-43a9-8fef-48a5b9da76d1"
        }, {
          "pod" : {
            "name" : "pod1",
            "region" : "us-central1"
          },
          "status" : "deployed",
          "type" : [ "message-processor" ],
          "uUID" : "879a6538-a5e0-4503-b142-9cb2b4e0623d"
        }, {
        "error" : "Cache : configCache, not found in organization : kkalckstein-eval__test",
        "errorCode" : "steps.cache.CacheNotFound",
        "status" : "error",
        "type" : [ "message-processor" ],
         "uUID" : "a8f9ce0b-c32d-48a9-b26c-9c75d8bf467d"
    },
    ...
        "state" : "deployed"
      } ],
      "name" : "2",
      "organization" : "kkalckstein-eval"
      ...
    
  2. Ghi lại(các) UUID của Trình xử lý thông báo mà bạn thấy lỗi steps.cache.CacheNotFound. Xác định tên máy chủ/địa chỉ IP của Trình xử lý thông báo được liên kết với UUID.

  3. Đăng nhập vào Trình xử lý thông báo cụ thể và khởi động lại bằng lệnh sau:

    apigee-service edge-message-processor restart

Nếu bạn là người dùng Đám mây công khai hoặc nếu vấn đề vẫn tiếp diễn đối với Đám mây riêng tư, hãy liên hệ với Nhóm hỗ trợ Apigee để được trợ giúp.