Code
Last updated
Last updated
Node mã hỗ trợ chạy mã Python/NodeJS để thực hiện các phép biến đổi dữ liệu trong một workflow. Nó có thể đơn giản hóa workflow của bạn và phù hợp với các kịch bản như các phép toán số học, biến đổi JSON, xử lý văn bản, và nhiều hơn nữa.
Nút này tăng cường đáng kể tính linh hoạt cho các nhà phát triển, cho phép họ nhúng các script tùy chỉnh Python hoặc JavaScript vào trong workflow và xử lý các biến theo cách mà các nút đã cài đặt không thể đạt được. Thông qua các tùy chọn cấu hình, bạn có thể chỉ định các biến đầu vào và đầu ra cần thiết và viết mã thực thi tương ứng:
Nếu bạn cần sử dụng các biến từ các nút khác trong nút mã, bạn phải định danh tên biến trong các biến đầu vào và tham chiếu đến các biến này. Bạn có thể tham khảo Tham chiếu Biến.
Sử dụng nút mã, bạn có thể thực hiện các phép toán phổ biến sau:
1. Xử Lý Dữ Liệu Cấu Trúc
Trong các workflow, bạn thường phải xử lý dữ liệu không cấu trúc, chẳng hạn như phân tích, trích xuất, và biến đổi các chuỗi JSON. Một ví dụ điển hình là xử lý dữ liệu từ một nút HTTP. Trong các cấu trúc trả về API phổ biến, dữ liệu có thể được lồng bên trong nhiều lớp các đối tượng JSON, và bạn cần trích xuất một số trường cụ thể. Nút mã có thể giúp bạn thực hiện những hoạt động này. Dưới đây là một ví dụ đơn giản trích xuất trường data.name
từ một chuỗi JSON trả về bởi một nút HTTP:
2. Tính Toán Toán Học
Khi bạn cần thực hiện các phép tính toán học phức tạp trong một workflow, bạn cũng có thể sử dụng nút mã. Ví dụ, tính toán một công thức toán học phức tạp hoặc thực hiện một số phân tích thống kê trên dữ liệu. Dưới đây là một ví dụ đơn giản tính toán phương sai của một mảng:
3. Nối Dữ Liệu
Đôi khi, bạn có thể cần nối nhiều nguồn dữ liệu, chẳng hạn như nhiều truy vấn kiến thức, tìm kiếm dữ liệu, gọi API, v.v. Nút mã có thể giúp bạn tích hợp những nguồn dữ liệu này lại với nhau. Dưới đây là một ví dụ đơn giản hợp nhất dữ liệu từ hai cơ sở tri thức:
Nếu bạn là người dùng triển khai tại chỗ, bạn cần khởi động dịch vụ sandbox để đảm bảo rằng mã độc hại không được thực thi. Dịch vụ này yêu cầu sử dụng Docker. Bạn có thể tìm thông tin cụ thể về dịch vụ sandbox tại đây. Bạn cũng có thể khởi động dịch vụ trực tiếp qua docker-compose
:
Cả hai môi trường thực thi Python và JavaScript đều được cách ly nghiêm ngặt (sandboxed) để đảm bảo an toàn. Điều này có nghĩa là các nhà phát triển không thể sử dụng các chức năng tiêu tốn nhiều tài nguyên hệ thống hoặc có thể gây ra rủi ro bảo mật, chẳng hạn như truy cập trực tiếp vào hệ thống tệp, thực hiện các yêu cầu mạng, hoặc thực thi các lệnh cấp hệ điều hành. Những hạn chế này đảm bảo việc thực thi mã được thực hiện an toàn và tránh tiêu tốn tài nguyên hệ thống một cách quá mức.
Tại sao tôi không thể lưu mã trong nút mã?
Vui lòng kiểm tra xem mã có chứa các hành vi nguy hiểm tiềm ẩn hay không. Ví dụ:
Đoạn mã này có các vấn đề sau:
Truy cập tệp không được phép: Mã cố gắng đọc tệp "/etc/passwd", một tệp hệ thống quan trọng trong các hệ thống Unix/Linux lưu trữ thông tin tài khoản người dùng.
Công bố thông tin nhạy cảm: Tệp "/etc/passwd" chứa thông tin quan trọng về người dùng hệ thống, chẳng hạn như tên người dùng, ID người dùng, ID nhóm, đường dẫn thư mục nhà, v.v. Truy cập trực tiếp có thể dẫn đến rò rỉ thông tin.
Mã nguy hiểm sẽ bị chặn tự động bởi Cloudflare WAF. Bạn có thể kiểm tra xem nó đã bị chặn hay chưa bằng cách nhìn vào tab "Mạng" trong "Công cụ Phát triển Web" của trình duyệt.