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 thiệu
Chủ đề này giải thích cách thêm một ứng dụng Node.js vào một proxy hiện có trên hệ thống tệp cục bộ và cách triển khai proxy đó đến Apigee Edge.
Chuẩn bị môi trường phát triển
Trong chủ đề này, chúng tôi giả định rằng bạn đã thiết lập một môi trường phát triển proxy trên hệ thống cục bộ và bạn muốn tích hợp một ứng dụng Node.js vào đó.
Cấu trúc cơ bản của một ứng dụng proxy bao gồm một ứng dụng Node.js tuân theo mẫu được minh hoạ trong hình bên dưới, với một thư mục cơ sở /apiproxy và các thư mục con cho resources, targets và proxies. Thư mục apiproxy/resources/node là nơi bạn phải đặt các tệp Node.js. Các thư mục khác chứa các tệp XML xác định điểm cuối đích và proxy, luồng proxy, luồng có điều kiện, v.v. Để xem nội dung mô tả đầy đủ hơn về cấu trúc proxy API, hãy xem Tài liệu tham khảo về cấu hình proxy API.

Bạn chỉ cần nhớ rằng mọi mã Node.js thuộc về proxy đều phải được đặt trong /apiproxy/resources/node. Đó là nơi Edge dự kiến sẽ tìm thấy tệp này khi được triển khai.
Chỉ định đích đến Node.js bằng ScriptTarget
Khoá để tích hợp Node.js vào một proxy là chỉ định phần tử <ScriptTarget> trong tệp XML của điểm cuối đích. Trong cấu trúc tệp proxy, tệp XML này nằm trong apiproxy/targets. Theo mặc định, tên tệp là default.xml.
Để hiểu rõ hơn, hãy xem xét rằng điểm cuối đích thường trỏ đến một dịch vụ phụ trợ nào đó. Trong trường hợp này, chúng ta sẽ truy cập vào dịch vụ đích mô phỏng Apigee. Định nghĩa điểm cuối đích có dạng như sau:
<TargetEndpoint name="default"> <Description/> <Flows/> <PreFlow name="PreFlow"> <Request/> <Response/> </PreFlow> <HTTPTargetConnection> <URL>http://mocktarget.apigee.net/</URL> </HTTPTargetConnection> <PostFlow name="PostFlow"> <Request/> <Response/> </PostFlow> </TargetEndpoint>
Phần tử <HTTPTargetConnection> chỉ định URL của dịch vụ phụ trợ, dịch vụ đích mô phỏng Apigee.
Tuy nhiên, trong trường hợp Node.js, chính ứng dụng Node.js là mục tiêu. Bạn chỉ định điều này bằng <ScriptTarget> trong tệp apiproxy/targets/default.xml.
Thay vì đích đến sử dụng phần tử <HTTPTargetConnection> để chỉ định URL của một dịch vụ phụ trợ, ứng dụng Node.js được tham chiếu trực tiếp bằng phần tử <ScriptTarget>, như sau:
<TargetEndpoint name="default"> <ScriptTarget> <ResourceURL>node://server.js</ResourceURL> </ScriptTarget> <PreFlow name="PreFlow"> <Request/> <Response/> </PreFlow> </TargetEndpoint>
Tham số <ResourceURL> phải luôn có tiền tố là node://, theo sau là tên của tập lệnh Node.js chính. Và như đã lưu ý trước đó, các tài nguyên Node.js phải nằm trong /apiproxy/resources/node ở phạm vi proxy API.
Bạn có thể đặt các tham số bổ sung trong ScriptTarget. Để biết thông tin chi tiết, hãy xem phần Cấu hình ScriptTarget nâng cao.
Để minh hoạ, sau đây là mã nguồn cho tệp Node.js chính, có tên là server.js. Đây là máy chủ HTTP cơ bản trả về "Hello World!" khi nhận được yêu cầu:
var http = require('http'); console.log('node.js application starting...'); var svr = http.createServer(function(req, resp) { resp.end('Hello, Node!'); }); svr.listen(process.env.PORT || 9000, function() { console.log('Node HTTP server is listening'); });
Tóm lại, giả sử ứng dụng Node.js main được triển khai trong một tệp có tên là server.js và cả hai cấu hình điểm cuối đều có tên là default.xml, thì API Proxy chứa tập lệnh Node.js sẽ có cấu trúc như sau:
/apiproxy/proxyName.xml /apiproxy/proxies/default.xml /apiproxy/targets/default.xml /apiproxy/resources/node/server.js
Chuẩn bị triển khai ứng dụng
Hầu hết các ứng dụng Node.js đều có tệp phần phụ thuộc và bao gồm tệp package.json trong thư mục cơ sở. Trong trường hợp này, phương pháp hay nhất là chạy tiện ích npm để đảm bảo rằng thư mục node_modules cấp cao nhất được điền sẵn các phần phụ thuộc trước khi bạn triển khai. Nếu có bất kỳ phần phụ thuộc từ xa nào không có trong node_modules, ứng dụng Node.js của bạn sẽ không chạy trên Edge.
Bạn có thể dễ dàng truy xuất tất cả các phần phụ thuộc vào hệ thống tệp bằng tiện ích npm:
- Từ thư mục cơ sở của ứng dụng Node.js, hãy chạy:
$ npm install
hoặc
$ npm update
Khi các phần phụ thuộc được cài đặt, bạn đã sẵn sàng triển khai proxy của mình cho Edge.
Triển khai ứng dụng Node.js lên Apigee Edge
Trước khi triển khai, bạn cần biết tên tổ chức, tên người dùng và mật khẩu cho tài khoản Apigee Edge của mình. Bạn cần thông tin này để tạo đúng lệnh của công cụ triển khai.
Sau đây là lệnh. Thao tác này giả định (với cờ -d) rằng bạn đang ở trong thư mục gốc của proxy. Nếu proxy của bạn có tên là foo, hãy nhập lệnh này từ thư mục foo:
$ apigeetool deployproxy -u username -p password -o org -e test -n hellonode -d .
$ apigeetool deployproxy -h
Để xem bản tóm tắt nhanh:
- -n Cờ này cho phép bạn chỉ định tên của proxy sẽ được tạo khi ứng dụng được triển khai. Bạn sẽ thấy tên này trong giao diện người dùng quản lý.
- -d Chỉ định thư mục gốc của proxy API.
- -o, -e, -u và -p chỉ định tên tổ chức, môi trường triển khai, tên người dùng và mật khẩu.
Kiểm thử proxy API mới
Bạn vừa thêm một ứng dụng Node.js vào một API proxy hiện có và triển khai proxy đó đến Apigee Edge! Để kiểm thử, hãy chạy lệnh cURL sau. Chúng tôi giả định rằng đường dẫn cơ sở mặc định (/) được sử dụng (đường dẫn cơ sở được chỉ định trong tệp cấu hình điểm cuối proxy). Nhớ thay thế tên tổ chức của bạn cho org_name. Nếu chưa cài đặt cURL, bạn có thể nhập URL vào trình duyệt.
$ curl http://org_name-test.apigee.net/
Hello, Node!
Xem proxy mới trong giao diện người dùng quản lý
Đăng nhập vào tài khoản Apigee Edge của bạn rồi chuyển đến trang API Proxies (API Proxy). Bạn sẽ thấy proxy có tên "hellonode" được liệt kê ở đó.

Nhấp vào "hellonode" để xem thông tin chi tiết về proxy. Trong chế độ xem Develop (Phát triển), bạn có thể xem mã nguồn mà mình đã tải lên, thêm chính sách, chỉnh sửa luồng, v.v.

Các bước tiếp theo
Để biết thông tin về cách gỡ lỗi các ứng dụng Node.js đang chạy trên Apigee Edge, hãy xem phần Gỡ lỗi và khắc phục sự cố về các proxy Node.js.