Develop
The StreamNative cloud will find theprocess method from the NodeJs function file, below is an example:
Avro and Json schema record, for Avro scheme input and output:
Json input and output:
Feature Matrix
The NodeJs runtime doesn’t support full features comparing to Java runtime, and it’s still in developing, below is the matrix:Input Arguments
Output Arguments
Context
Other
Package
You can either provide a single.js file or package your function into a .zip file when creating NodeJs functions.
A zip file should contain:
- the
pacakge.jsonfile - other source code file
package.json:
package.json:
package.json and handle your function.
Deploy
After creating a cluster, set up your environment and develop&package your function, you can use thesnctl, pulsarctl, pulsar-admin command, the REST API, or terraform to deploy a Pulsar function to your cluster.
You can create a NodeJs Pulsar function by using a local .js or .zip file or an uploaded Pulsar functions package(recommend).
(Optional) Upload your function file to Pulsar
It’s recommended to upload your function file to Pulsar before you create a function. Since you can add a version suffix to the package.- snctl
- Pulsarctl
- Pulsar-admin
Upload packagesYou should see the following output:
Create
- snctl
- Pulsarctl
- Pulsar-admin
- Terraform
- REST API
Only Pulsar 4.0.x clusters running version 4.0.10.6 or later, or Pulsar 4.2.x clusters running version 4.2.1.4 or later, support the
--sn-service-account flag.You can use --as-service-account instead of --sn-service-account if you are using other versions of Pulsar clusters.Since Pulsar doesn’t support NodeJs runtime, we need to use
--py to specify the function file and specify the --custom-runtime-options '{"genericKind": "nodejs"}' to make it work.What’s next?
- Learn how to develop WASM functions.
- Learn how to manage functions.
- Learn how to configure stateful functions.
- Learn how to monitor functions.
- Reference common configurations.