Thêm Node.js vào một proxy API hiện có

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 thiệu

Chủ đề này giải thích cách thêm ứ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 cho 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 có chứa ứng dụng Node.js tuân theo mẫu hiển thị trong hình bên dưới, với một thư mục /apiproxy cơ sở và các thư mục con cho resources, targetproxies. Thư mục apiproxy/resources/node là nơi 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 proxy và điểm cuối mục tiêu, luồng proxy, luồng có điều kiện, v.v. Để biết 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.

Chỉ cần nhớ rằng mọi mã Node.js là một phần của proxy đều phải được đặt trong /apiproxy/resources/node. Đó là nơi Edge dự kiến sẽ tìm thấy khi triển khai.

Chỉ định mục tiêu Node.js bằng ScriptTarget

Chìa 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 mục tiêu. 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.

Để theo bối cảnh, hãy xem xét rằng một điểm cuối mục tiêu thường trỏ đến một dịch vụ phụ trợ thuộc dạng nào đó. Trong trường hợp này, chúng ta gặp phải dịch vụ mục tiêu mô phỏng Apigee. Định nghĩa điểm cuối mục tiêu sẽ 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ụ mục tiêu mô phỏng Apigee.

Tuy nhiên, trong trường hợp của Node.js, ứng dụng Node.js chính chính là mục tiêu. Bạn chỉ định mã này bằng <ScriptTarget> trong tệp apiproxy/targets/default.xml.

Thay vì mục tiêu sử dụng phần tử <HTTPTargetConnection> để chỉ định URL của 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. Đồng thời, 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 thông số bổ sung trong ScriptTarget. Để biết thông tin chi tiết, hãy xem phần Cấu hình Advanced ScriptTarget.

Theo mục đích của ví dụ này, sau đây là mã nguồn của tệp Node.js chính, có tên là server.js. Đây là máy chủ HTTP cơ bản sẽ trả về thông báo "Hello World!" (Xin chào mọi người!) khi nhận được một 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 chính được triển khai trong một tệp có tên là server.js và các cấu hình điểm cuối đều có tên là default.xml, thì Proxy API 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ó các tệp phụ thuộc và bao gồm một tệp package.json trong thư mục cơ sở. Trong trường hợp này, cách tốt 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 được 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 của mình bằng cách sử dụng tiện ích npm:

  1. Từ thư mục cơ sở của ứng dụng Node.js, hãy chạy:
$ npm install 

hoặc

$ npm update

Sau khi cài đặt phần phụ thuộc, bạn có thể triển khai proxy cho Edge.

Triển khai ứng dụng Node.js cho 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 API Apigee của mình. Bạn cần thông tin này để tạo chính xác lệnh của công cụ triển khai.

Đây là lệnh. Phương thứ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 sau từ thư mục foo:

$ apigeetool deployproxy -u username -p password -o org -e test -n hellonode -d .
Để biết thông tin về ý nghĩa của từng cờ lệnh, hãy làm theo các bước sau:

$ apigeetool deployproxy -h

Cách 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-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.
Tất cả chỉ có thế. Ứng dụng Node.js của bạn được bao bọc trong một proxy API, được triển khai cho Edge và được thực thi. Trình xử lý này đang chờ các yêu cầu và sẵn sàng được kiểm thử.

Kiểm thử proxy API mới

Bạn vừa thêm một ứng dụng Node.js vào một proxy API hiện có và triển khai proxy cho Apigee Edge! Để kiểm tra mã, hãy chạy lệnh cURL này. Chúng tôi giả định đườ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). Hãy nhớ thay thế tên tổ chức của bạn bằng org_name. Nếu chưa cài đặt cURL, bạn có thể nhập URL đó vào một 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ảnApigee Edge của bạn và truy cập vào trang Proxy API. 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 khung hiển thị Phát triển, bạn có thể xem mã nguồn mình đã tải lên, thêm chính sách, chỉnh sửa quy trình, 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 chạy trên Apigee Edge, hãy xem bài viết Gỡ lỗi và khắc phục sự cố proxy Node.js.