Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến
Tài liệu về Apigee X. thông tin
Phiên bản Node.js nào được hỗ trợ trên Bạn muốn dùng ứng dụng Apigee Edge?
Edge hiện hỗ trợ Node.js 0.10.32.
Những mô-đun Node.js chuẩn nào là có hỗ trợ trên Edge không?
Sử dụng bảng sau đây để xác định các mô-đun Node.js chuẩn là có trên Edge. Trong một số trường hợp, các mô-đun đi kèm chỉ được hỗ trợ một phần. Đây là các mô-đun được tích hợp sẵn trong Node.js.Mô-đun | Trạng thái | Ghi chú |
---|---|---|
assert |
Có thể làm | |
buffer |
Có thể làm | |
child_process |
Bị hạn chế | Hệ thống sẽ gửi một ngoại lệ nếu bạn cố gắng tạo một quy trình phụ. Tuy nhiên, "chĩa" được hỗ trợ để tạo chỉ số dưới. |
cluster |
Đã tắt | Phương thức string.isMaster luôn trả về true và các phương thức khác sẽ không được triển khai. Một bản sao của mỗi tập lệnh Node.js được triển khai cho từng trình xử lý thông báo của Edge. |
crypto |
Có thể làm | |
dns |
Có thể làm | |
domain |
Có thể làm | |
dgram |
Bị hạn chế | Các ứng dụng Node.js trong môi trường Apigee sẽ không thể truy cập vào các dịch vụ trên Internet thông qua UDP do kiến trúc mạng của chúng tôi. |
events |
Có thể làm | |
fs |
Bị hạn chế | Quyền truy cập hệ thống tệp bị hạn chế ở thư mục nơi tập lệnh được khởi chạy:
Thư mục /resources/node . Tập lệnh Node.js có thể đọc và ghi tệp trong
thư mục này, chẳng hạn như dưới dạng vết xước tạm thời, nhưng không có gì đảm bảo đối với
khoảng thời gian các tệp sẽ tồn tại. |
http |
Có thể làm | Máy chủ ảo và đường dẫn cho các yêu cầu đến được chỉ định trong Proxy API chứ không phải bằng mô-đun HTTP. Xem phần "Tìm hiểu việc hỗ trợ cho http và https các mô-đun" để biết thêm thông tin. |
https |
Có thể làm | Tạo "https" máy chủ hoạt động giống hệt như "http" máy chủ. Xem bài viết "Tìm hiểu về việc hỗ trợ các mô-đun http và https" để biết thêm của bạn. |
module |
Có thể làm | |
net |
Bị hạn chế | Việc cố gắng theo dõi các kết nối TCP đến sẽ tạo ra một ngoại lệ. |
path |
Có thể làm | |
module |
Có thể làm | |
process |
Hỗ trợ một phần | Chức năng thao túng mã nhận dạng người dùng, thành viên nhóm và thư mục đang làm việc không được được hỗ trợ. |
punycode |
Có thể làm | |
querystring |
Có thể làm | |
readline |
Đã tắt | Không có dữ liệu đầu vào chuẩn cho các tập lệnh chạy trên Apigee Edge. |
repl |
Đã tắt | Không có dữ liệu đầu vào chuẩn cho các tập lệnh chạy trên Apigee Edge. |
module |
Đã bao gồm | |
STDIO |
Có thể làm |
Dữ liệu đầu ra và lỗi thông thường được chuyển đến tệp nhật ký trong Apigee Edge cơ sở hạ tầng. Bạn có thể xem các nhật ký này bằng cách nhấp vào Nhật ký Node.js trong và giao diện người dùng quản lý Apigee Edge cho proxy API của bạn. Không có dữ liệu đầu vào chuẩn cho các tập lệnh chạy trên Apigee Edge. Tuy nhiên, bạn có thể chuyển đối số bằng phần tử ScriptTarget của TargetEndpoint. Xem Cấu hình ScriptTarget nâng cao để biết thêm thông tin. |
stream |
Có thể làm | |
string_decoder |
Có thể làm | |
timers |
Đã bao gồm | |
tls |
Có thể làm | Về cơ bản, các thông số Bảo mật tầng truyền tải (TLS) hoạt động giống như cách chúng hoạt động Node.js thông thường. Xem bài viết Sử dụng mô-đun Node.js TLS (SSL) trên Apigee Edge để biết thông tin chi tiết. |
tty |
Đã tắt | Không có dữ liệu đầu vào chuẩn cho các tập lệnh chạy trên Apigee Edge. |
url |
Có thể làm | |
util |
Có thể làm | |
vm |
Có thể làm | |
zlib |
Có thể làm |
Các mô-đun được hỗ trợ khác
Phần này liệt kê các mô-đun bổ sung không được hỗ trợ trong Node.js chuẩn, nhưng được do Trireme và Trireme hỗ trợ chạy trên Apigee Edge. Trireme là vùng chứa Node.js nguồn mở chạy trên Lợi ích của Apigee. Thư viện này được thiết kế để chạy các tập lệnh Node.js bên trong Máy ảo Java (JVM). Toàn bộ các mô-đun này có trên Trình quản lý cấu hình nội dung (ứng dụng web).
Mô-đun | Mô tả |
---|---|
apigee-access | Cho phép các ứng dụng Node.js chạy trên nền tảng Apigee Edge truy cập vào Chức năng dành riêng cho Apigee. Bạn có thể sử dụng mô-đun này để: truy cập và sửa đổi luồng biến, truy xuất dữ liệu từ kho lưu trữ bảo mật và sử dụng bộ nhớ đệm, hạn mức và OAuth của Edge luôn miễn phí. Hãy xem thêm phần Sử dụng mô-đun truy cập apigee. |
trireme-support | Cho phép các ứng dụng Node.js tận dụng các tính năng dành riêng cho Trireme. Hiện tại chỉ có một tính năng được hỗ trợ -- tải các mô-đun Node.js được tạo bằng Java. Lưu ý: tảiJar không được hỗ trợ trong Edge Cloud. |
trireme-tmt | Trình bày bản tóm tắt của quá trình xử lý XLST. Công cụ này được thiết kế đặc biệt cho Trireme nền tảng để cho phép xử lý XML hiệu quả khi ứng dụng Node.js được chạy trên Java. |
trireme-jdbc | Cấp quyền truy cập vào JDBC từ Node.js. Lưu ý: Không được hỗ trợ trong Edge Cloud. Dành cho Edge riêng tư Cloud, bạn có thể đặt các tệp JAR JDPC vào đường dẫn lớp và sử dụng mô-đun này. |
Hỗ trợ các mô-đun Node.js thường dùng
Các quy định hạn chế đối với tập lệnh Node.js
Tuy nhiên, lưu ý rằng Edge áp dụng một số hạn chế nhất định đối với tập lệnh Node.js, chẳng hạn như sau:
- Các ứng dụng Node.js trong môi trường Apigee Edge không thể truy cập vào các dịch vụ trên Internet qua UDP do kiến trúc mạng Edge.
- Quyền truy cập hệ thống tệp bị hạn chế ở thư mục nơi tập lệnh Node.js được khởi chạy: /resources/node. Tập lệnh Node.js có thể đọc và ghi tệp trong thư mục này, đối với chẳng hạn như là một vết xước tạm thời, nhưng không có gì đảm bảo về việc tệp sẽ tồn tại lâu dài.
- Việc cố gắng theo dõi các kết nối TCP đến sẽ tạo ra một trường hợp ngoại lệ.
- Chức năng thao túng mã nhận dạng người dùng, thành viên nhóm và thư mục đang làm việc không được được hỗ trợ.
- Đối với phương thức nhập chuẩn, bạn bị giới hạn trong việc truyền đối số bằng ScriptTarget
của TargetEndpoint. Xem phần Nâng cao
Cấu hình ScriptTarget để biết thêm thông tin.
- Đối với đầu ra chuẩn, bạn chỉ được sử dụng nút Nhật ký Node.js trong Edge
cho proxy của bạn. Bạn cũng có thể sử dụng "apigeetool getlogs" . Để biết thêm
thông tin, hãy xem phần Triển khai
một ứng dụng Node.js độc lập.
- Các mô-đun phụ thuộc vào mã gốc không được hỗ trợ.
- Các mô-đun phụ thuộc vào các tính năng EcmaScript 6, chẳng hạn như Promises (Lời hứa và Trình tạo) không được
được hỗ trợ.
- Cờ thời gian chạy của Node.js, chẳng hạn như " proxy hài hoà" không được hỗ trợ.
Đặt các hạn chế kết nối IP trên Edge cho Private Cloud
Edge dành cho Đám mây riêng tư có thể hạn chế mã Node.js truy cập vào các địa chỉ IP kể từ bằng “10.", "192.168" và localhost. Nếu bạn cố gắng truy cập vào các địa chỉ IP này, bạn sẽ thấy một lỗi trong biểu mẫu:
{ [Error: connect EINVAL] message: 'connect EINVAL', code: 'EINVAL', errno: 'EINVAL', syscall: 'connect' }
Bạn có thể sửa đổi những quy định hạn chế này bằng cách đặt thuộc tính conf_nodejs_connect.ranges.denied trong message-processors.properties cho từng Trình xử lý thư. Theo mặc định, thuộc tính này có giá trị:
- Edge 4.17.05 trở về trước: conf_nodejs_connect.ranges.denied=10.0.0.0/8,192.168.0.0/16,127.0.0.1/32
- Edge 4.17.09 trở lên: conf_nodejs_connect.ranges.denied= (nghĩa là không có hạn chế)
Cách đặt tài sản này:
- Mở tệp message-processor.properties trong một
trình chỉnh sửa. Nếu tệp chưa tồn tại, hãy tạo tệp:
> vi /<inst_root>/apigee/customer/application/message-processor.properties - Đặt thuộc tính như mong muốn. Ví dụ: để từ chối quyền truy cập chỉ vào máy chủ cục bộ:
conf_nodejs_connect.ranges.denied=127.0.0.1/32 - Lưu các thay đổi.
- Đảm bảo rằng tệp thuộc tính thuộc sở hữu của "apigee" người dùng:
> chown apigee:apigee /<inst_root>/apigee/customer/application/message-processor.properties - Khởi động lại Trình xử lý thư:
> /<inst_root>/apigee/apigee-service/bin/apigee-service cạnh-message-processor Khởi động lại
Tìm hiểu về việc hỗ trợ các mô-đun http và https
Tất cả ứng dụng Node.js chạy trong Apigee Edge phải sử dụng http
hoặc
Mô-đun https
để theo dõi các yêu cầu được gửi đến. Nếu bạn định triển khai một tập lệnh
không theo dõi các yêu cầu được gửi đến mà chỉ thực thi và thoát.
Phương thức listen
của các mô-đun http
và https
trong
Node.js lấy số cổng làm thông số. Ví dụ:
svr.listen(process.env.PORT || 9000, function() { console.log('The server is running.'); });
"Cổng" này là bắt buộc trong Node.js, nhưng Apigee Edge lại bỏ qua tham số này. Thay vào đó, proxy API mà tập lệnh Node.js chạy trong đó sẽ chỉ định "máy chủ ảo" âm thanh đó và ứng dụng Node.js cũng sử dụng chính các máy chủ ảo đó, giống như mọi ứng dụng Apigee Edge khác proxy.
Mỗi môi trường trong Apigee đều có ít nhất một máy chủ ảo. Máy chủ ảo xác định HTTP
chế độ cài đặt để kết nối với tổ chức Apigee. Tất cả proxy API trong một môi trường đều chia sẻ
cùng một máy chủ ảo. Theo mặc định, mỗi môi trường có sẵn 2 máy chủ ảo:
default
và secure
. Để biết thêm thông tin, hãy xem
Nhận Máy chủ lưu trữ ảo và API
vòng đời phát triển.
Lệnh apigeetool deploynodeapp
tạo một trình bao bọc proxy Apigee Edge
xung quanh ứng dụng Node.js. Khi được triển khai, ứng dụng Node.js sẽ theo dõi theo mặc định
máy chủ ảo được xác định cho môi trường. URL cho ứng dụng Node.js sẽ luôn là
http://{org_name}-{env_name}.apigee.net
.
Xử lý cuộc gọi đến yêu cầu
Giống như các ứng dụng Apigee Edge khác, nếu ứng dụng proxy được thiết lập để nghe trên
secure
thì máy chủ ảo sẽ chấp nhận các yêu cầu đến bằng HTTPS.
Xử lý cuộc gọi đi yêu cầu
Ngoài việc nhận lưu lượng truy cập đến, các ứng dụng Node.js bên trong Apigee Edge có thể sử dụng
Các mô-đun http
và https
để thực hiện các yêu cầu ra ngoài như bất kỳ Node.js nào khác
. Các mô-đun này hoạt động giống như bên trong Node.js.
Tìm hiểu về việc hỗ trợ cho mô-đun tls
Apigee Edge hỗ trợ mô-đun Node.js tls.
Mô-đun này sử dụng OpenSSL để cung cấp giao thức Bảo mật tầng truyền tải (TLS) và/hoặc Lớp cổng bảo mật
(SSL) thông tin giao tiếp trong luồng được mã hóa. Bạn có thể sử dụng mô-đun tls
để tạo chế độ bảo mật
kết nối với các dịch vụ phụ trợ từ ứng dụng Node.js chạy trên Edge.
Để hiểu cách hoạt động của mô-đun tls
trên Apigee Edge, bạn cần phải
tìm hiểu cách dùng virtual hosts
trên Apigee Edge. Mọi môi trường trong Apigee
có ít nhất một máy chủ ảo. Máy chủ ảo xác định chế độ cài đặt HTTP để kết nối với
Tổ chức Apigee. Tất cả proxy API trong một môi trường đều chia sẻ cùng máy chủ ảo. Theo mặc định,
có hai máy chủ ảo cho mỗi môi trường: default
và
secure
Để biết thêm thông tin về máy chủ ảo, hãy xem
Nhận Máy chủ lưu trữ ảo và API
vòng đời phát triển.
Bây giờ, hãy cùng tìm hiểu cách Apigee Edge xử lý giao tiếp TLS (SSL) cho cuộc gọi đến và cuộc gọi đi các yêu cầu trên ứng dụng Node.js:
Xử lý cuộc gọi đến yêu cầu
Tuỳ thuộc vào cách định cấu hình máy chủ ảo cho tổ chức của bạn, Edge cung cấp các tính năng sau tùy chọn:
- Nếu proxy API được định cấu hình để theo dõi trên máy chủ ảo
default
, thì proxy đó chấp nhận yêu cầu qua HTTP. - Nếu proxy API được định cấu hình để theo dõi trên máy chủ ảo
secure
, thì proxy đó chấp nhận yêu cầu qua HTTPS. URL sẽ nằm trong miềnapigee.net
và chứng chỉ SSL ký tự đại diện cho*.apigee.net
sẽ được sử dụng. Miễn là ứng dụng tạo yêu cầu đến miềnapigee.net
, thì chứng chỉ SSL sẽ xác thực thông thường.
Xử lý cuộc gọi đi yêu cầu
Bạn có thể thực hiện các yêu cầu đi bằng mô-đun tls
giống như cách bạn làm
thường trong Node.js. Về cơ bản, bạn cần thêm khoá và chứng chỉ phía máy khách
(.pem
tệp) vào thư mục resources/node
rồi tải các tệp đó bên trong
tập lệnh. Để biết thông tin về cách sử dụng mô-đun tls
và các phương thức của mô-đun đó, hãy xem
Tài liệu về mô-đun Node.js tls.
Cấu hình ScriptTarget nâng cao
<TargetEndpoint name="default"> <ScriptTarget> <ResourceURL>node://hello.js</ResourceURL> <EnvironmentVariables> <EnvironmentVariable name="NAME">VALUE</EnvironmentVariable> </EnvironmentVariables> <Arguments> <Argument>ARG</Argument> </Arguments> </ScriptTarget> </TargetEndpoint>