Vô hiệu hoá khắc phục sự cố triển khai chính sách Bộ nhớ đệm

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

InvalidCacheResourceReference

Thông báo lỗi

Không triển khai được proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge với thông báo lỗi sau:

Error Deploying Revision revision_number to environment
Invalid cache resource reference [cache_resource] in Step definition [invalidate_cache_policy_name]. Context Revision:[revision_number];APIProxy:[apiproxy_name];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 InvalidateCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test

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

Nguyên nhân

Lỗi này xảy ra nếu phần tử <CacheResource> trong chính sách InvalidateCache được đặt thành tên không tồn tại trong môi trường đang triển khai proxy API.

Chẩn đoán

  1. Xác định tên InvalidateCache, bộ nhớ đệm không hợp lệ được dùng trong phần tử <CacheResource> của chính sách InvalidateCache và môi trường xảy ra lỗi. Bạn có thể tìm thấy tất cả những mục này trong thông báo lỗi. Ví dụ: trong lỗi sau, tên chính sách InvalidateCache là InvalidateCache-Token, 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 InvalidateCache-Token. Context Revision:2;APIProxy:TestCache;Organization:kkalckstein-eval;Environment:test
    
  2. Kiểm tra XML của chính sách InvalidateCache không thành công và xác minh xem tên bộ nhớ đệm được chỉ định cho phần tử <CacheResource> có khớp với thông báo lỗi hay không.

    Trong ví dụ này, tên bộ nhớ đệm được chỉ định trong phần tử <CacheResource>tokencache:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <InvalidateCache async="false" continueOnError="false" enabled="true" name="InvalidateCache-Token">
        <DisplayName>InvalidateCache-Token</DisplayName>
        <Properties/>
        <CacheKey>
            <Prefix/>
            <KeyFragment ref=""/>
        </CacheKey>
        <CacheResource>tokencache</CacheResource>
        <Scope>Exclusive</Scope>
        <CacheContext>
            <APIProxyName/>
            <ProxyName>default</ProxyName>
            <TargetName>default</TargetName>
        </CacheContext>
        <PurgeChildEntries>false</PurgeChildEntries>
    </InvalidateCache>
    
  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ể hay chưa (được xác định ở bước #1).

    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ụ: hãy chú ý trong ảnh chụp màn hình ở bên dưới rằng bộ nhớ đệm có tên tokencache không tồn tại.

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

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

Độ phân giải

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

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

CacheNotFound

Thông báo lỗi

Quá trình 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 thông báo lỗi như sau và trạng thái triển khai của Proxy API sẽ đượ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 cụ thể của Trình xử lý thông báo. Bộ xử lý tin nhắn là một thành phần nội bộ của Edge, giúp xử lý luồng lưu lượng truy cập API thông qua Apigee Edge.

Độ phân giải

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

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

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

    Kết quả 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. Hãy lưu ý(các) UUID của Bộ xử lý thông báo mà bạn quan sát thấy lỗi steps.cache.CacheNotFound. Xác định tên máy chủ/địa chỉ IP của Bộ xử lý thông báo tương ứng với mã nhận dạng duy nhất (UUID).

  3. Đăng nhập vào Bộ 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 cộng hoặc nếu sự cố vẫn tiếp diễn với Đám mây riêng tư, hãy liên hệ với Nhóm hỗ trợ API để được trợ giúp.