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

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về Apigee X.
thông tin

Chủ đề này giải thích cách triển khai ứ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 cách sử dụng công cụ dòng lệnh có tên là apigeetool để triển khai các ứng dụng Node.js cho Apigee Edge.

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

Bạn có thể triển khai ứ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 đến Apigee Edge bằng cách sử dụng một tiện ích dòng lệnh có tên là apigeetool. Tiện ích này tự động gói ứng dụng và các phần phụ thuộc của ứng dụng vào một proxy API rồi triển khai ứng dụng đó trên Edge.

Ví dụ: giả sử bạn đã sử dụng Express để tạo một ứng dụng web trong Node.js. Ứng dụng chạy dưới dạng máy chủ HTTP để theo dõi 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 ứng dụng Node.js cho Edge, ứng dụng này sẽ được gói trong một proxy và thực thi trong bối cảnh của nền tảng Edge. Sau đó, bạn có thể gọi ứng dụng của mình thông qua URL proxy mới và có thể tăng thêm giá trị cho ứng dụng bằng cách "trang điểm" ứng dụng bằng các tính năng Edge tiêu chuẩn như bảo mật OAuth, chính sách hạn mức, chính sách bảo vệ 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.

Công cụ apigeetool có chức năng 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 với bất kỳ gói Node.js nào được cài đặt bằng NP (Mô-đun đóng gói nút).
  • Nhập gói cấu hình proxy API vào tổ chức đã chỉ định trên Apigee Edge bằng cách sử dụng API quản lý Edge.
  • 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 qua 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 Công cụ nền tảng API 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

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

$ apigeetool -h

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

Cách triển khai ứ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ả trong cửa sổ dòng lệnh. 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à kết quả đã được triển khai. Mọi thứ đều diễn ra suôn sẻ. Ứng dụng Node.js của bạn được gói trong một proxy API, được triển khai cho Edge và đang chạy và chờ xử lý các yêu cầu. Bây giờ, bạn có thể 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 Proxy API của giao diện người dùng quản lý. Bạn sẽ thấy proxy mới của mình được liệt kê tại đó.

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 rồi 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 đúng với 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ộ, sau đó triển khai lại bằng apigeetool hoặc bằng cách nhập dự án đã xuất qua giao diện người dùng quản lý. Xem thêm phần "Xuất và nhập proxy bằng mã Node.js".

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

Để biết thông tin sử dụng cơ bản về 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 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 Proxy API mới.

  1. Trên trang tóm tắt proxy API, hãy nhấp vào + Proxy API.
  2. Trong hộp thoại New API Proxy (Proxy API mới), hãy chọn Existing Node.js (Node.js hiện có).
  3. Sử dụng nút Choose Files (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 sẽ gọi lớp này là hellonode.
  5. Thêm phiên bản /v1 vào Đường dẫn cơ sở dự án. Việc tạo phiên bản cho API là phương pháp hay nhất.
  6. Nhấp vào Build (Bản dựng).
  7. Nhấp vào Phát triển để truy cập vào chế độ xem Phát triển.
  8. Mở tệp TargetEndpoint trong trình soạn thảo 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 tệp tài nguyên Node.js mới

Một cách khác để thêm mã Node.js vào proxy là thêm trực tiếp mã đó 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 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 bổ sung vào một proxy trên nền tảng Edge. Bạn có thể tạo trực tiếp 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 từ 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 Phát triển, hãy chọn Tập lệnh mới trên trình đơn Mới.
  2. Trong hộp thoại Thêm tập lệnh, hãy chọn loại tệp Node (Điểm cuối) rồi đặ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 Tập lệnh của 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 import tệp Node.js từ hệ thống tệp của bạn vào proxy:

  1. Trong chế độ xem Phát triển, hãy chọn Tập lệnh mới trên trình đơn Mới.
  2. Trong hộp thoại Thêm tập lệnh, hãy nhấp vào 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ếu muốn.
  5. Nhấp vào Thêm. Tệp này sẽ xuất hiện trong phần Tập lệnh của 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 ở phần tiếp theo.

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

Bạn không thể chỉ gọi một tệp Node.js mới được 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 mục Điểm cuối mục tiêu trong 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à mặc định).
  2. Trong Trình soạn thảo 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 hello-world.js làm 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 mà bạn đã sử dụng trước đó. Ví dụ: chúng ta đã xem xét 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 Điểm cuối proxy.

  1. Trong phần Proxy Endpoints (Điểm cuối 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).
  2. Trong Trình soạn thảo mã, hãy chỉnh sửa phần tử <HttpProxyConnection> bằng cách thay đổi <BasePath> thành bất kỳ tên nào bạn muốn. Ví dụ: nếu <BasePath> hiện tại là v1/hello và bạn muốn giá trị đó là v1/my-node-file, hãy thay đổi phần tử <BasePath> như sau:

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

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

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

Sau khi triển khai proxy chứa mã Node.js sang Edge, bạn luôn có thể xuất proxy trở lại hệ thống, thao tác trên proxy, rồi nhập lại proxy 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 được sử dụng.

  1. Trên trang tóm tắt về proxy API, hãy nhấp vào Phát triển.
  2. Trên 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 gói proxy trở lại 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 trình đơn.

Bạn cũng có thể sử dụng API để triển khai proxy. Hãy xem phần Triển khai proxy qua 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 ứng dụng Node.js vào một proxy hiện có trong hệ thống tệp và triển khai ứng dụng đó cho Edge.