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
Giới hạn biến môi trường
Hosted Targets 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 Hosted Targets.
- 1000: Độ dài tối đa của một biến môi trường.
- 100: Số lượng biến môi trường tối đa mà bạn có thể thiết lập.
Để biết thông tin về cách thiết lập các biến môi trường, hãy xem phần Tệp kê khai.
Các biến môi trường được thiết lập trong thời gian chạy ứng dụng
Khi bạn triển khai một ứng dụng Hosted Targets, các biến môi trường sau 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 nơi triển khai proxy Mục tiêu được lưu trữ.APIGEE_ORGANIZATION– Tổ chức triển khai proxy Mục tiêu được lưu trữ.PORT– Cổng mà ứng dụng Đích được lưu trữ phải lắng nghe.
Phân bổ tài nguyên hệ thống
Mỗi thực thể Hosted Targets sẽ 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 các ứng dụng Hosted Targets mở rộng quy mô, tuỳ thuộc vào loại tài khoản Edge mà bạn có.- Phiên bản dùng thử của Apigee Edge chỉ giới hạn ở một phiên bản Hosted Targets cho mỗi proxy.
- Các tài khoản Apigee Edge trả phí sẽ nhận được tính năng tự động cấp tài nguyên bổ sung dựa trên tỷ lệ yêu cầu, độ trễ phản hồi và các chỉ số ứng dụng khác cho mỗi proxy.
- Các ứng dụng Hosted Targets được triển khai cho cả phiên bản có tính phí và phiên bản dùng thử của Apigee Edge sẽ giảm xuống 0 trong 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. Xem thêm Các vấn đề đã biết
Tệp kê khai
Để thu thập thông tin thời gian chạy cho việc tạo và triển khai ứng dụng được lưu trữ, Edge sẽ tìm một tệp kê khai có tên là app.yaml trong thư mục resources/hosted. Tệp này chứa thông tin cần thiết để tạo và triển khai ứng dụng Hosted Targets.
Cú pháp tệp kê khai
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
Các phần tử trong tệp kê khai
Tệp kê khai app.yaml bao gồm những phần tử sau:
- runtime – (Bắt buộc) Chỉ định loại ứng dụng mà bạn đang triển khai.
Bạn phải chỉ định
node. - runtimeVersion – (Không bắt buộc) Phiên bản của thời gian chạy mà ứng dụng của bạn sử dụng. Mặc định: Node.js LTS (v10.x). Hãy tham khảo Kho lưu trữ chính thức của Docker cho Node để biết các lựa chọn khác.
- command – (Không bắt buộc) Cho phép bạn chỉ định một lệnh để chạy ngoà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 đối số dòng lệnh để truyền đến ứng dụng (được chỉ định trong cú pháp mảng YAML tiêu chuẩn). Thông thường, các tham số này được thêm vào lệnh mặc định.
Giá trị mặc định là start. Ví dụ: theo mặc định, ứng dụng Node.js sẽ được truyề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 Hosted Targets. Các biến này có sẵn cho ứng dụng Hosted Targets mà bạn đã triển khai.
- name – Tên biến.
- value | valueRef – Bạn có 2 lựa chọn. Bạn có thể đặt một giá trị cố định hoặc tham chiếu đến một giá trị được lưu trữ trong Bản đồ khoá-giá trị. Key Value Map phải đã tồn tại trong môi trường Edge của bạn. Xem phần Làm việc với bản đồ khoá-giá trị
- Nếu sử dụng value, thì bạn phải chỉ định một biến
namevà một giá trị cố địnhvalue. 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 Key Value Map (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, thì bạn phải chỉ định một biến
- apigeetool – Một công cụ dòng lệnh để triển khai các proxy Edge.
- get_token – Một công cụ dòng lệnh để lấy mã uỷ quyền mà apigeetool yêu cầu.
- Trong trình duyệt, hãy truy cập vào https://github.com/apigee/api-platform-samples.
- Nhấp vào Sao chép hoặc tải xuống rồi kéo kho lưu trữ xuống hệ thống cục bộ bằng phương thức mà bạn muốn.
- cd đến <your install dir>/api-platform-samples/doc-samples/hosted-targets
- Sau khi tải kho lưu trữ xuống, bạn có thể chuyển đến bất kỳ thư mục mẫu nào và làm theo hướng dẫn trong tệp README để triển khai một proxy mẫu cho Edge. Lệnh triển khai được minh hoạ 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:
- Độ 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ó một bước nhảy mạng giữa MP và quá trình triển khai. Tất nhiên, việc này sẽ tốn chi phí nhưng các điểm chuẩn ban đầu cho thấy chi phí này nằm trong 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 sẽ tự động điều chỉnh quy mô dựa trên nhu cầu. Điều này có nghĩa là ứng dụng của bạn có thể giảm xuống 0 phiên bản và nếu đó là trường hợp, 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ăng số lượng phiên bản để 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 một proxy Hosted Targets, 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, vấn đề sẽ tự khắc phục.
Ví dụ về tệp kê khai
Phần này chứa các tệp kê khai mẫu cho các ứng dụng Node.js. Bạn phải có tệp kê khai để triển khai ứng dụng Hosted Targets và tệp này phải nằm trong thư mục apiproxy/resources/hosted, đồng thời tên tệp phải là app.yaml.
Sau đây là ví dụ về các tệp app.yaml (manifest) cho ứng dụng Node.js.
Ví dụ chỉ định một biến môi trường theo nghĩa đen:
runtime: node
env:
- name: NODE_ENV
value: productionVí dụ về lệnh khởi động, đố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ụ chỉ định một tham chiếu Key Value Map (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
Các ứng dụng Hosted Targets mẫu trên GitHub
Apigee cung cấp các proxy mẫu trên GitHub với các ứng dụng Hosted Target đượ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 trong tệp README để triển khai bất kỳ proxy nào.
Điều kiện tiên quyết
Để triển khai các mẫu, bạn phải cài đặt 2 công cụ sau trên hệ thống:
Nếu muốn kiểm thử các mẫu cục bộ, bạn cũng phải cài đặt Node.js.
Lấy kho lưu trữ mẫu
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 ~/myhomegit clone https://github.com/apigee/api-platform-samples.gitcd ~/myhome/api-platform-samples/doc-samples/hosted-targetscd 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.jscurl http://localhost:8081
Ví dụ về đầu ra:
{"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. 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
Ví dụ về đầu ra:
{"date":"2018-03-23T18:59:18.668Z","msg":"Hello, World!"