Triển khai một ứng dụng Node.js độc lập

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

Chủ đề này giải thích cách triển khai một ứng dụng Node.js từ hệ thống cục bộ của bạn đến Apigee Edge. Trong chủ đề này, chúng ta sẽ thảo luận về cách sử dụng một công cụ dòng lệnh có tên là apigeetool để triển khai các ứng dụng Node.js vào Apigee Edge.

Giới thiệu về việc triển khai mã Node.js cho Apigee Edge

Bạn có thể triển khai một ứng dụng API Node.js hiện có (bao gồm cả mọi mô-đun Node.js phụ thuộc) từ hệ thống cục bộ của mình sang Apigee Edge bằng một tiện ích dòng lệnh có tên là apigeetool. Tiện ích này tự động liên kết ứng dụng và các phần phụ thuộc của ứng dụng đó thành một proxy API rồi triển khai trên Edge.

Ví dụ: giả sử bạn đã dùng Express để tạo một ứng dụng web trong Node.js. Ứng dụng này chạy dưới dạng một máy chủ HTTP, lắng nghe các yêu cầu HTTP, xử lý các yêu cầu đó, trả về dữ liệu, v.v. Khi bạn sử dụng apigeetool để triển khai một ứng dụng Node.js cho Edge, ứng dụng đó sẽ được bao bọc trong một proxy và thực thi trong ngữ cảnh của nền tảng Edge. Sau đó, bạn có thể gọi ứng dụng thông qua URL proxy mới của ứng dụng và có thể thêm giá trị cho ứng dụng bằng cách "trang bị" cho ứng dụng các tính năng tiêu chuẩn của Edge như bảo mật OAuth, chính sách hạn mức, chính sách bảo vệ khỏi mối đe doạ, luồng có điều kiện, lưu vào bộ nhớ đệm và nhiều tính năng khác.

apigeetool làm gì?

Khi bạn chạy tiện ích apigeetool bằng tuỳ chọn deploynodeapp, tiện ích này sẽ:

  • Tạo một gói cấu hình proxy API để lưu trữ ứng dụng Node.js.
  • Đóng gói ứng dụng Node.js bằng mọi gói Node.js được cài đặt bằng NPM (Các mô-đun được đóng gói của Node).
  • Nhập gói cấu hình proxy API vào tổ chức được chỉ định trên Apigee Edge bằng Edge Management API.
  • Triển khai proxy API cho một môi trường.
  • Thực thi ứng dụng Node.js trên Apigee Edge và cung cấp ứng dụng đó qua mạng.

Chuẩn bị sử dụng apigeetool

Trước khi bắt đầu, bạn cần cài đặt tiện ích apigeetool.

Bạn có thể cài đặt apigeetool thông qua npm hoặc bằng cách sao chép và liên kết mã từ GitHub.

Cài đặt từ npm

Mô-đun apigeetool và các phần phụ thuộc của mô-đun này được thiết kế cho Node.js và có sẵn thông qua npm bằng lệnh sau:

$ sudo npm install -g apigeetool

Thông thường, tuỳ chọn -g sẽ đặt các mô-đun trong: /usr/local/lib/node_modules/apigeetool trên các máy dựa trên *nix.

Cài đặt từ GitHub

Tải xuống hoặc sao chép API Platform Tools từ GitHub. Hãy xem tệp README trong thư mục gốc của kho lưu trữ để biết hướng dẫn cài đặt.

$ git clone https://github.com/apigee/apigeetool-node.git

Sau khi hoàn tất quá trình cài đặt, hãy đảm bảo rằng tệp thực thi apigeetool nằm trong Đường dẫn của bạn. Bạn có thể thử bằng cách nhập:

$ apigeetool -h

Triển khai ứng dụng Node.js lên Edge bằng apigeetool

Lưu ý: 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 Apigee Edge 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 apigeetool.

Cách triển khai một ứng dụng Node.js bằng apigeetool:

  1. Trong cửa sổ dòng lệnh, cd thư mục gốc của ứng dụng Node.js.
  2. Thực thi tiện ích apigeetool bằng lệnh deploynodeapp:

    $ apigeetool deploynodeapp -n {A name for your new proxy} -d {The root directory of your Node.js app} -m {The name of the main Node.js file} -o {Your org name on Edge} -e {The environment to deploy to} -b {The base URL for your proxy} -u {Your Edge email address} -p {Your Edge password}
    
    Ví dụ:

    $ apigeetool deploynodeapp -n myNodeApp -d . -m server.js -o myorg -e test -b /myNodeApp -u ntesla -p myPassword
    
  3. Kiểm tra kết quả đầu ra trong cửa sổ dòng lệnh. Đoạn mã sẽ có dạng như sau:

    Importing new application myNodeApp
    Imported new app revision 1
    Deploying revision 1
      Deployed.
    Proxy: "myNodeApp" Revision 1
      Environment: test BasePath: /myNodeApp
      Status: deployed

    Nếu bạn thấy "Trạng thái: đã triển khai", thì tức là bạn đã hoàn tất. Mọi thứ diễn ra suôn sẻ. Ứng dụng Node.js của bạn được bao bọc trong một proxy API, được triển khai đến Edge, đang chạy và chờ xử lý các yêu cầu. Đã sẵn sàng để thử nghiệm.

  4. Kiểm thử proxy. Ví dụ:

    $ curl http://myorg-test.apigee.net/myNodeApp
    Hello, My Node App!
    
  5. Nếu muốn, hãy đă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) của giao diện người dùng quản lý. Bạn sẽ thấy proxy mới của mình trong danh sách đó.

Cách apigeetool xử lý các tệp và mô-đun phụ thuộc

Nếu ứng dụng Node.js của bạn phụ thuộc vào các mô-đun đã cài đặt, thì apigeetool sẽ xử lý các mô-đun đó bằng cách nén thư mục node_modules và thêm thư mục đó vào gói proxy. Bạn không cần làm gì thêm. Điều này cũng áp dụng cho mọi thư mục chứa mã nguồn bổ sung. Tiện ích apigeetool sẽ nén và triển khai các tệp này bằng gói.

Bạn không thể chỉnh sửa tệp trong các thư mục nén này trên trình chỉnh sửa của giao diện người dùng quản lý Edge. Nếu cần thay đổi, bạn có thể xuất dự án, chỉnh sửa các tệp cục bộ, rồi triển khai lại bằng apigeetool hoặc bằng cách nhập dự án đã xuất bằng giao diện người dùng quản lý. Xem thêm phần "Xuất và nhập một proxy bằng mã Node.js".

Thông tin sử dụng cơ bản cho apigeetool

Để biết thông tin cơ bản về cách sử dụng các thông số đầu vào của tiện ích apigeetool, hãy nhập:

$ apigeetool deploynodeapp -h

  Usage: deploynodeapp -n [name] -o [organization] -e [environment]
  -d [directory name] -m [main script file]
  -u [username] -p [password]
  -b [base path] -l [apigee API url] -z [zip file] -i -h
  -o Apigee organization name
  -e Apigee environment name
  -n Apigee proxy name
  -d Apigee proxy directory
  -m Main script name: Should be at the top level of the directory
  -u Apigee user name
  -p Apigee password
  -b Base path (optional, defaults to /)
  -L Apigee API URL (optional, defaults to https://api.enterprise.apigee.com)
  -z ZIP file to save (optional for debugging)
  -i import only, do not deploy
  -R Resolve Node.js modules on Apigee Edge. Equivalent to running npm install on your project. 
  -U Uploads Node.js modules to Apigee Edge. 
  -h Print this message

Tạo một proxy mới bằng các tệp Node.js hiện có

Một cách khác để tích hợp ứng dụng Node.js hiện có vào một proxy API là thêm ứng dụng khi bạn tạo proxy. Bạn có thể thực hiện việc này hoàn toàn thông qua giao diện người dùng quản lý và hộp thoại New API Proxy (API Proxy mới).

  1. Trên trang tóm tắt về API proxy, hãy nhấp vào +API Proxy.
  2. Trong hộp thoại New API Proxy (API Proxy mới), hãy chọn Existing Node.js (Node.js hiện có).
  3. Sử dụng nút Chọn tệp để chọn một hoặc nhiều tệp Node.js cần nhập.
  4. Đặt tên cho proxy. Trong ví dụ này, chúng ta gọi nó là hellonode.
  5. Thêm phiên bản /v1 vào Đường dẫn cơ sở của dự án. Việc lập phiên bản cho API là một phương pháp hay.
  6. Nhấp vào Build (Bản dựng).
  7. Nhấp vào Phát triển để chuyển sang chế độ xem Phát triển.
  8. Mở tệp TargetEndpoint trong trình chỉnh sửa mã.
  9. Đảm bảo phần tử <ScriptTarget> chỉ định tệp Node.js chính, như sau:


    <ScriptTarget>
            <ResourceURL>node://server.js</ResourceURL>
            <Properties/>
    </ScriptTarget>
  10. Nhấp vào Lưu.

Thêm và gọi các tệp tài nguyên Node.js mới

Một cách khác để thêm mã Node.js vào một proxy là thêm mã đó trực tiếp, thông qua giao diện người dùng hoặc bằng cách tải mã đó lên từ hệ thống tệp cục bộ. Bạn cũng có thể chỉ định tệp Node.js nào là tệp chính, tức là tệp mà Edge sẽ gọi khi triển khai proxy.

Thêm tệp Node.js mới thông qua giao diện người dùng

Giao diện người dùng quản lý cho phép bạn thêm các tệp nguồn Node.js khác vào một proxy trên nền tảng Edge. Bạn có thể tạo các thành phần này ngay trong giao diện người dùng hoặc nhập từ hệ thống tệp. Trước tiên, hãy xem cách thực hiện việc này trên giao diện người dùng.

Cách tạo tệp tài nguyên Node.js mới:

  1. Trong chế độ xem Develop (Phát triển), hãy chọn New (Mới) > Script (Tập lệnh) trong trình đơn New (Mới).
  2. Trong hộp thoại Add Script (Thêm tập lệnh), hãy chọn loại tệp Node và đặt tên cho tập lệnh.
  3. Nhấp vào Thêm.

Tệp Node.js trống mới sẽ mở ra trong trình chỉnh sửa. Bạn có thể cắt và dán mã vào tệp. Tệp này cũng xuất hiện trong phần Scripts (Tập lệnh) của Navigator (Trình điều hướng).

[[{"type":"media","view_mode":"media_large","fid":"2431","attributes":{"alt":"","class":"media-image","height":"312","typeof":"foaf:Image","width":"417"}}]]

Nhập tệp Node.js từ hệ thống tệp

Cách nhập một tệp Node.js từ hệ thống tệp vào proxy:

  1. Trong chế độ xem Develop (Phát triển), hãy chọn New (Mới) > Script (Tập lệnh) trong trình đơn New (Mới).
  2. Trong hộp thoại Add Script (Thêm tập lệnh), hãy nhấp vào Import Script (Nhập tập lệnh).
  3. Sử dụng công cụ tệp để chọn tệp Node.js.
  4. Tên của tệp sẽ được thêm vào hộp thoại, nhưng bạn có thể thay đổi tên này nếu muốn.
  5. Nhấp vào Thêm. Tệp này sẽ xuất hiện trong phần Scripts (Tập lệnh) của Navigator (Trình điều hướng) và mở trong trình chỉnh sửa.
  6. Nhấp vào Lưu.

Nếu muốn gọi tệp đã nhập, bạn cần thực hiện thêm một bước, như giải thích trong phần tiếp theo.

Gọi một tệp Node.js đã nhập

Bạn không thể chỉ cần gọi một tệp Node.js mới nhập hoặc tạo. Lý do là Edge yêu cầu một tệp Node.js phải là tệp chính. Tệp chính được chỉ định trong phần tử <ScriptTarget> của định nghĩa Điểm cuối mục tiêu. Để chỉ định tệp nào là tệp Node.js chính, hãy làm như sau:

  1. Trong phần Target Endpoints (Điểm cuối mục tiêu) trong Navigator (Trình điều hướng), hãy nhấp vào tên của điểm cuối mục tiêu (thường được gọi là default).
  2. Trong Trình chỉnh sửa mã, hãy chỉnh sửa phần tử <ScriptTarget> bằng cách thay đổi <ResourceURL> để phản ánh tên của tệp mà bạn muốn làm tệp Node.js chính. Ví dụ: nếu muốn tệp có tên là hello-world.js là tệp chính, bạn sẽ nhập: node://hello-world.js vào phần tử ResourceURL.
  3. Nhấp vào Lưu.

Tại thời điểm này, bạn có thể gọi tệp bằng bất kỳ đường dẫn proxy nào bạn đã sử dụng trước đó. Ví dụ: chúng ta đã xem ví dụ Hello World!, trong đó đường dẫn cơ sở v1/hello được chỉ định. Tuy nhiên, bạn có thể thay đổi đường dẫn cơ sở bằng cách chỉnh sửa Proxy Endpoint.

  1. Trong phần Proxy Endpoints (Điểm cuối của proxy) trong Navigator (Trình điều hướng), hãy nhấp vào tên của điểm cuối proxy (thường được gọi là default (mặc định)).
  2. Trong Trình chỉnh sửa mã, hãy chỉnh sửa phần tử <HttpProxyConnection> bằng cách thay đổi <BasePath> thành tên bất kỳ mà bạn muốn. Ví dụ: nếu <BasePath> hiện tại là v1/hello và bạn muốn đặt thành v1/my-node-file, hãy thay đổi phần tử <BasePath> như sau:

    <BasePath>/v1/my-node-file</BasePath>
  3. Nhấp vào Lưu.
  4. Gọi proxy bằng đường dẫn cơ sở mới, như sau:

    $ curl http://myorg-test.apigee.net/v1/my-node-file
    Hello, World!
    

Xuất và nhập một proxy bằng mã Node.js

Sau khi triển khai một proxy chứa mã Node.js vào Edge, bạn luôn có thể xuất proxy đó trở lại hệ thống của mình, thao tác trên đó rồi nhập lại vào Edge bằng giao diện người dùng quản lý. Loại kỹ thuật phát triển khứ hồi này thường dùng.

  1. Trên trang tóm tắt về proxy API, hãy nhấp vào Phát triển.
  2. Trong trang Phát triển, hãy chọn Tải bản sửa đổi hiện tại xuống.
  3. Giải nén tệp đã tải xuống trên hệ thống của bạn.

Bạn có thể nhập lại gói proxy vào Edge bằng cách chọn Import Into New Revision (Nhập vào bản sửa đổi mới) trong cùng một trình đơn.

Bạn cũng có thể dùng API này để triển khai các proxy. Hãy xem phần Triển khai các proxy từ dòng lệnh để biết thông tin chi tiết.

Các bước tiếp theo

Trong chủ đề tiếp theo, Thêm Node.js vào một proxy API hiện có, chúng tôi sẽ giải thích cách thêm một ứng dụng Node.js vào một proxy hiện có trong hệ thống tệp của bạn và triển khai ứng dụng đó đến Edge.