Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến
Tài liệu về Apigee X. thông tin
Đôi khi bạn muốn lưu trữ dữ liệu để truy xuất trong thời gian chạy — dữ liệu không hết hạn không được mã hoá cứng trong logic proxy API. Bản đồ giá trị khoá (KVM) là lựa chọn lý tưởng cho việc này. Đáp KVM là một tập hợp tuỳ chỉnh gồm các cặp Chuỗi khoá/giá trị được mã hoá hoặc chưa mã hoá. Dưới đây là hai ví dụ:
Để tìm hiểu về các kiểu duy trì khác, hãy xem Thêm hoạt động lưu vào bộ nhớ đệm và lưu trữ cố định.
Tình huống KVM
Dưới đây là một số trường hợp KVM trở nên hữu ích:
- Bạn có một proxy API cần gọi một URL mục tiêu (hoặc Chú thích dịch vụ) trong một thử nghiệm và một URL mục tiêu khác trong môi trường sản xuất. Thay vì mã hoá cứng URL trong proxy của bạn, bạn có thể yêu cầu proxy này phát hiện môi trường mà proxy đang ở, thực thi Khoá liên quan Giá trị chính sách Hoạt động bản đồ và truy xuất URL mục tiêu chính xác từ một trong các KVM mà bạn đã tạo. Sau đó, nếu một hoặc cả hai mục tiêu của bạn thay đổi, bạn chỉ cần cập nhật KVM bằng các URL mới. Proxy nhận các giá trị mới và không cần triển khai lại proxy.
- Bạn muốn lưu trữ thông tin đăng nhập, khoá riêng tư hoặc mã thông báo (chẳng hạn như mã thông báo cho dịch vụ, thông tin đăng nhập cần thiết để tạo mã thông báo OAuth hoặc khoá riêng tư được dùng trong Chú thích Java hoặc JavaScript để mã hoá hoặc ký Mã thông báo web JSON (JWT). Thay vì truyền thông tin đăng nhập, khoá hoặc mã thông báo vào yêu cầu hoặc mã hoá cứng thông tin đó trong logic proxy, bạn có thể lưu trữ chúng trong KVM (luôn được mã hoá) và truy xuất động trong các lệnh gọi đến các mục tiêu yêu cầu chúng.
Bạn cũng có thể tìm hiểu các tình huống khác mà việc lưu trữ cặp Chuỗi khoá/giá trị hữu ích. Trong hãy cân nhắc sử dụng KVM khi:
- Các vị trí cụ thể trong mã của bạn yêu cầu các giá trị khác nhau trong thời gian chạy.
- Dữ liệu nhạy cảm cần được truyền mà không cần mã hoá cứng.
- Bạn muốn lưu trữ các giá trị không hết hạn như bộ nhớ đệm.
KVM có phạm vi
Phạm vi có nghĩa là "nơi có sẵn KVM". Bạn có thể tạo KVM ở các phạm vi sau:
organization
, environment
và apiproxy
.
Ví dụ: nếu chỉ một proxy API yêu cầu dữ liệu trong KVM, thì bạn có thể tạo KVM tại
apiproxy
, trong đó chỉ proxy API đó mới có thể truy cập vào dữ liệu.
Hoặc bạn có thể muốn tất cả proxy API trong môi trường thử nghiệm của mình có quyền truy cập vào bản đồ khoá-giá trị, trong trong trường hợp bạn sẽ tạo bản đồ giá trị khoá ở phạm vi môi trường. Proxy được triển khai trong "sản phẩm" môi trường không thể truy cập KVM trong phần "kiểm thử" môi trường. Nếu bạn muốn cùng một KVM có sẵn trong phiên bản chính thức, hãy tạo một KVM song song trong phạm vi phiên bản "sản phẩm" môi trường.
Nếu bạn muốn tất cả proxy trong mọi môi trường truy cập vào cùng một KVM, hãy tạo KVM tại
Phạm vi organization
.
Giới thiệu về KVM đã mã hoá
KVM đã mã hoá được mã hoá bằng một khoá mật mã AES-128 do Apigee tạo. Khoá dùng để mã hoá KVM được lưu trữ tại phạm vi của KVM. Ví dụ: trong một tổ chức, tất cả các KVM đã mã hoá mà bạn tạo ở phạm vi môi trường được tạo bằng cùng một phạm vi môi trường .
Edge xử lý việc hiển thị các giá trị đã mã hoá theo những cách sau. (Xem bài viết Quản lý và sử dụng KVM để biết thông tin về cách tạo KVM được mã hoá.)
Giao diện người dùng Edge
Giá trị khoá được mã hoá sẽ ánh xạ các giá trị hiển thị được che bằng dấu hoa thị trong giao diện người dùng (*****). Cho ví dụ:
API quản lý
Trong API quản lý, các giá trị đã mã hoá được trả về bị che khuất. Sau đây là cách quản lý mẫu Phản hồi của API trên lệnh gọi Nhận KVM được mã hoá:
{ "encrypted": true, "entry": [ { "name": "Key1", "value": "*****" }, { "name": "Key2", "value": "*****" } ], "name": "secretMap" }
Theo dõi và gỡ lỗi
Khi bạn sử dụng chính sách Hoạt động bản đồ giá trị chính
để truy xuất các giá trị KVM đã mã hoá, bạn cần cung cấp tên của một biến để lưu trữ
giá trị. Để nhận giá trị được mã hoá, bạn cần thêm "private.
" vào trường
để ngăn không cho các khoá/giá trị KVM xuất hiện trong các phiên Theo dõi và gỡ lỗi.
Giới hạn
Trong các tổ chức có Chính Đã bật Dịch vụ liên tục (CPS):
- Tên/giá trị nhận dạng KVM có phân biệt chữ hoa chữ thường.
- Khoá có kích thước giới hạn ở 2 KB.
- Giới hạn kích thước giá trị là 10 KB.
Đối với Apigee Edge cho Private Cloud, mỗi KVM không được vượt quá 15 MB (đây là kích thước kết hợp của các khoá và giá trị). Nếu bạn vượt quá giới hạn này, Apigee Edge cho Private Cloud sẽ báo lỗi. Để xác định kích thước của KVM, bạn có thể sử dụng lệnh nodetool Cpstats.
KVM lớn hơn có thể làm giảm hiệu suất. Do đó, bạn nên tách các phần lớn, các KVM nguyên khối thành các mảnh nhỏ hơn để cải thiện hiệu suất.
Quản lý và sử dụng KVM
Bạn có thể tạo, quản lý và sử dụng KVM theo nhiều cách. Phần này mô tả các để tạo rồi truy xuất cả KVM mã hoá lẫn chưa mã hoá.
Tạo và cập nhật KVM
Bạn có thể tạo và cập nhật KVM theo những cách sau:
-
Chính sách vận hành bản đồ giá trị khoá (không mã hoá)
Để tạo và cập nhật KVM trong thời gian chạy bằng proxy API, hãy sử dụng Chính sách vận hành bản đồ giá trị chính. (Trong chính sách, bạn chỉ định tên của KVM trong thuộc tính
mapIdentifier
trên phần tử mẹ element.)Phần tử
<InitialEntries>
cho phép bạn tạo và điền sẵn một tập hợp các mục cơ sở trong KVM mới ngay khi bạn lưu chính sách trong giao diện người dùng hoặc triển khai Proxy API (nếu bạn phát triển proxy API ngoại tuyến). Nếu các giá trị thay đổi trong chính sách, thì giá trị hiện có bị ghi đè. Mọi khoá/giá trị mới đều được thêm vào KVM hiện có cùng với khoá/giá trị hiện có.Phần tử
<Put>
tạo một KVM mới nếu không có đã tồn tại và tạo khoá có một hoặc nhiều giá trị. Nếu đã KVM tồn tại, khoá/giá trị sẽ được thêm vào (hoặc cập nhật nếu khoá đã tồn tại). Bạn có thể sử dụng nhiều phần tử<Put>
trong một chính sách KVM. -
API Quản lý
API quản lý dùng để làm việc với KVM với tư cách quản trị viên thay vì trong thời gian chạy trong proxy API của bạn. Ví dụ: bạn có thể có một tập lệnh nội bộ sử dụng tính năng quản lý API để xoá và tạo lại KVM trong môi trường kiểm thử hoặc bạn nên đặt lại giá trị của khoá trong KVM để nhận tất cả proxy. (Để thao tác KVM trong thời gian chạy, hãy sử dụng Chính sách vận hành bản đồ giá trị chính trong proxy).
API quản lý Bản đồ giá trị/khoá cho phép bạn tạo, cập nhật và xoá KVM cũng như khoá/giá trị đã mã hoá tại tất cả phạm vi (tổ chức, môi trường và apiproxy).
Để tạo một KVM đã mã hoá bằng API quản lý, hãy thêm
"encrypted" : "true"
vào tải trọng JSON. Bạn chỉ có thể mã hoá KVM khi tạo chúng. Bạn không thể mã hoá KVM hiện có. -
Giao diện người dùng quản lý
Trong giao diện người dùng quản lý Edge, bạn có thể tạo và cập nhật KVM trong phạm vi môi trường, là phạm vi duy nhất của KVM xuất hiện trong giao diện người dùng. Giao diện người dùng quản lý là một cách hay để tự quản lý dữ liệu KVM cho API proxy trong thời gian chạy. Xem bài viết Tạo và chỉnh sửa bản đồ giá trị khoá của môi trường để biết thêm thông tin.
Truy xuất KVM
Bạn truy xuất khoá-giá trị khoá đã mã hoá và chưa mã hoá liên kết theo cách tương tự, chỉ có một chút khác biệt khi truy xuất bằng chính sách Hoạt động bản đồ giá trị khoá.
- Chính sách: Sử dụng phần tử
<Get>
trong phần tử Chính sách vận hành bản đồ giá trị chính để truy xuất KVM đã mã hoá và chưa mã hoá. Một điểm khác biệt nhỏ là truy xuất giá trị đã mã hoá theo chính sách, trong đó bạn phải thêm "private.
" tiền tố vào tên của biến sẽ chứa giá trị được truy xuất, như được mô tả trong Xem mục thao tác về chủ đề tham khảo. Tiền tố đó sẽ ẩn giá trị khỏi công cụ Theo dõi và gỡ lỗi trong khi gỡ lỗi proxy API. - API Quản lý: Để quản lý quản trị, bạn có thể sử dụng Tạo và chỉnh sửa bản đồ giá trị khoá trong môi trường để nhận KVM và khoá/giá trị. Ví dụ: nếu bạn muốn sao lưu KVM bằng cách nhận và lưu trữ các định nghĩa JSON, sử dụng API quản lý. Xin lưu ý! mặc dù các giá trị đã mã hoá đó được hiển thị dưới dạng ***** trong phản hồi của API.
- Giao diện người dùng quản lý: Bạn có thể xem các KVM ở phạm vi môi trường trong phần quản lý bằng cách chuyển đến APIs > Cấu hình môi trường > Bản đồ giá trị khoá (Classic Edge) hoặc Quản trị > Môi trường > Bản đồ giá trị khoá (cạnh mới).
Ví dụ về KVM
Để xem ví dụ về cách sử dụng KVM để điền các giá trị vào một URL, hãy xem https://community.apigee.com/questions/32727/templatize-target-url-with-kvm-by-environment.html.