Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về
Apigee X. thông tin
Giới hạn về biến môi trường
Mục tiêu được lưu trữ giới hạn kích thước và số lượng biến môi trường mà bạn có thể đặt trong môi trường thời gian chạy Mục tiêu được lưu trữ.
- 1000: Độ dài tối đa của một biến môi trường.
- 100: Số biến môi trường tối đa mà bạn có thể đặt.
Để biết thông tin về cách đặt các biến môi trường, hãy xem Tệp kê khai.
Biến môi trường được đặt trong thời gian chạy ứng dụng
Khi bạn triển khai ứng dụng Mục tiêu được lưu trữ, các biến môi trường sau đây sẽ được thiết lập và có sẵn cho ứng dụng của bạn trong thời gian chạy:
APIGEE_ENVIRONMENT
– Môi trường triển khai proxy mục tiêu được lưu trữ.APIGEE_ORGANIZATION
– Tổ chức nơi triển khai proxy Mục tiêu được lưu trữ.PORT
– Cổng mà ứng dụng Mục tiêu được lưu trữ phải theo dõi.
Phân bổ tài nguyên hệ thống
Mỗi thực thể Mục tiêu được lưu trữ đều nhận được các tài nguyên sau:
- Bộ nhớ 256 MB
- CPU 1,2 GHz
Chuyển tỷ lệ
Phần này mô tả cách mở rộng quy mô của ứng dụng Mục tiêu được lưu trữ, tuỳ thuộc vào loại tài khoản Edge bạn có.- Phiên bản dùng thử của Apigee Edge chỉ được dùng cho một thực thể mục tiêu được lưu trữ cho mỗi proxy.
- Tài khoản Apigee có tính phí sẽ được tự động mở rộng quy mô dựa trên tỷ lệ yêu cầu, độ trễ phản hồi và các chỉ số khác của ứng dụng trên mỗi proxy.
- Các ứng dụng được lưu trữ Targets được triển khai cho cả phiên bản dùng thử và có tính phí của Apigee Edge sẽ ở mức 0 trong những khoảng thời gian không hoạt động. Trong trường hợp này, bạn có thể nhận thấy thời gian phản hồi chậm hơn trong một khoảng thời gian ngắn. Hãy xem thêm phần Vấn đề đã biết
Tệp kê khai
Để thu thập thông tin về thời gian chạy nhằm xây dựng và triển khai ứng dụng được lưu trữ, Edge sẽ tìm một tệp kê khai có tên app.yaml trong thư mục resources/hosted. Tệp này chứa thông tin cần thiết để xây dựng và triển khai ứng dụng Mục tiêu được lưu trữ.
Cú pháp tệp manfiest
runtime: node runtimeVersion: version_number command: command_name args: argument_array env: - name: variable_name value: literal_value - name: variable_name valueRef: name: kvm_name key: kvm_value
Phần tử của tệp kê khai
Tệp kê khai app.yaml bao gồm các phần tử sau:
- runtime – (Bắt buộc) Chỉ định loại ứng dụng bạn đang triển khai.
Bạn phải chỉ định
node
. - runtimeVersion – (Không bắt buộc) Phiên bản thời gian chạy mà ứng dụng sử dụng. Mặc định: LTS Node.js (phiên bản 10.x). Hãy tham khảo Kho lưu trữ chính thức của Docker cho Nút để biết các tuỳ chọn khác.
- command – (Không bắt buộc) Cho phép bạn chỉ định một lệnh cần chạy khác với lệnh mặc định dùng để khởi động ứng dụng. Mặc định:
Node.js=npm
- args – (Không bắt buộc) Mảng các đối số dòng lệnh cần truyền đến ứng dụng (được chỉ định trong cú pháp mảng YAML chuẩn). Thông thường, các hàm này được thêm vào lệnh mặc định.
Lựa chọn mặc định là bắt đầu. Ví dụ: theo mặc định, ứng dụng Node.js sẽ được chuyển lệnh
npm start
. - env – (Không bắt buộc) Một mảng các biến môi trường (cặp tên/giá trị) cần đặt trong môi trường thời gian chạy Mục tiêu được lưu trữ. Các biến này có sẵn cho ứng dụng Mục tiêu được lưu trữ mà bạn đã triển khai.
- name – Tên biến.
- value | valueRef – Bạn có hai lựa chọn. Bạn có thể đặt giá trị bằng chữ hoặc tham chiếu đến một giá trị được lưu trữ trong Bản đồ giá trị khoá. Bản đồ giá trị khoá phải tồn tại trong môi trường Edge. Xem bài viết Xử lý bản đồ khoá-giá trị
- Nếu sử dụng value, bạn phải chỉ định một biến
name
vàvalue
cố định. Ví dụ:runtime: node env: - name: NODE_ENV value: production
- Nếu sử dụng valueRef, thì bạn phải cung cấp tên của Bản đồ giá trị khoá (KVM) mà bạn đã tạo trước đó trong Edge và một khoá.
Ví dụ:
runtime: node env: - name: DB_ENV value: production - name: DB_PASSWORD valueRef: name: hosted-kvm key: db-password
- Nếu sử dụng value, bạn phải chỉ định một biến
Tệp kê khai mẫu
Phần này chứa các tệp kê khai mẫu cho ứng dụng
Node.js. Bạn cần phải có tệp kê khai để triển khai ứng dụng Mục tiêu được lưu trữ. Tệp này phải nằm trong thư mục apiproxy/resources/hosted
và tên tệp phải là app.yaml
.
Sau đây là ví dụ về các tệp app.yaml
(tệp kê khai) cho các ứng dụng Node.js.
Ví dụ chỉ định một biến môi trường cố định:
runtime: node env: - name: NODE_ENV value: production
Ví dụ về lệnh bắt đầu, đối số dòng lệnh và biến môi trường.
runtime: node command: ./node_modules/pm2/bin/pm2 env: - name: NODE_ENV value: production args: - app.js
Ví dụ về trường hợp chỉ định tham chiếu Bản đồ giá trị khoá (KVM):
Để biết thêm thông tin về quyền truy cập KVM, hãy xem phần Tệp kê khai.
runtime: node env: - name: DB_ENV value: production - name: DB_PASSWORD valueRef: name: hosted-kvm key: db-password
Ví dụ về các ứng dụng Mục tiêu được lưu trữ trên GitHub
Apigee cung cấp các proxy mẫu trên GitHub với các ứng dụng Mục tiêu được lưu trữ được viết bằng Node.js. Bạn có thể sao chép kho lưu trữ này và làm theo hướng dẫn README để triển khai bất kỳ proxy nào.
Điều kiện tiên quyết
Để triển khai mẫu, bạn phải cài đặt 2 công cụ trên hệ thống:
- apigeetool – Công cụ dòng lệnh để triển khai proxy của Edge.
- get_token – Công cụ dòng lệnh để lấy mã uỷ quyền theo yêu cầu của apigeetool.
Nếu muốn kiểm tra mẫu cục bộ, bạn cũng phải cài đặt Node.js.
Lấy kho lưu trữ mẫu
- Trong trình duyệt, hãy truy cập https://github.com/apigee/api-platform-samples.
- Nhấp vào Clone or download (Sao chép hoặc tải xuống) và kéo kho lưu trữ vào hệ thống cục bộ của bạn bằng phương thức ưu tiên.
- cd thành <your install dir>/api-platform-samples/doc-samples/hosted-targets
- Sau khi tải kho lưu trữ xuống, bạn có thể ghi vào bất kỳ thư mục mẫu nào và làm theo hướng dẫn README để triển khai proxy mẫu cho Edge. Lệnh triển khai được hiển thị bên dưới. Bạn chỉ cần thay thế các tham số được chỉ định bằng các tham số cho tài khoản Apigee của mình:
get_token && apigeetool deployproxy \ -o YOUR_ORGANIZATION \ -e YOUR_ENVIRONMENT \ --json \ --token "$(< ~/.sso-cli/valid_token.dat)"\ --api NAME_OF_THE_PROXY \ --directory .
Ví dụ: Thực thi một ứng dụng mẫu
Sao chép kho lưu trữ mẫu
cd ~/myhome
git clone https://github.com/apigee/api-platform-samples.git
cd ~/myhome/api-platform-samples/doc-samples/hosted-targets
cd node-hosted-hello
Kiểm thử ứng dụng cục bộ
Bạn phải cài đặt Node.js để thực hiện kiểm thử cục bộ này.
PORT=8081 node apiproxy/resources/hosted/index.js
curl http://localhost:8081
Kết quả điểm dữ liệu:
{"date":"2018-03-12T21:45:22.161Z","msg":"Hello, World!"}
Triển khai proxy
get_token && apigeetool deployproxy \ -o myorg \ -e test \ --json \ --token "$(< ~/.sso-cli/valid_token.dat)"\ --api node-hosted-hello \ --directory .
Kiểm thử quá trình triển khai
Quá trình triển khai có thể mất vài phút để hoàn tất. Nếu bạn gặp lỗi triển khai, hãy thực thi lại lệnh triển khai.
curl http://myorg-test.apigee.net/node-hosted-hello
Kết quả điểm dữ liệu:
{"date":"2018-03-23T18:59:18.668Z","msg":"Hello, World!"
Vấn đề đã biết
- Thời gian trễ mạng – Giờ đây, ứng dụng Node.js không còn chạy trong JVM của MP nữa, nên sẽ có sự chuyển đổi mạng giữa MP và quá trình triển khai. Tất nhiên là bạn sẽ tốn chi phí, nhưng các điểm chuẩn ban đầu cho thấy hoạt động này ở mức hợp lý
- Phản hồi API chậm – Cơ sở hạ tầng chạy các ứng dụng của bạn tự động mở rộng quy mô theo nhu cầu. Điều này có nghĩa là ứng dụng của bạn thực sự có thể giảm quy mô xuống mức 0 thực thể và nếu đúng như vậy, thì yêu cầu API tiếp theo sẽ mất nhiều thời gian hơn một chút so với các yêu cầu API thông thường vì cơ sở hạ tầng đang tập trung(các) thực thể để xử lý(các) yêu cầu đó.
- Lỗi triển khai – Nếu bạn gặp lỗi triển khai khi triển khai proxy Mục tiêu được lưu trữ, hãy thử triển khai lại proxy. Trong một số trường hợp, quá trình triển khai có thể hết thời gian chờ và nếu bạn triển khai lại, sự cố sẽ tự giải quyết.