
Script
Script
yaml
type: "io.kestra.plugin.scripts.node.Script"Examples
yaml
id: nodejs_script
namespace: company.team
tasks:
- id: script
type: io.kestra.plugin.scripts.node.Script
beforeCommands:
- npm install colors
script: |
const colors = require("colors");
console.log(colors.red("Hello"));
yaml
id: nodejs_script
namespace: company.team
tasks:
- id: node
type: io.kestra.plugin.scripts.node.Script
beforeCommands:
- npm install json2csv > /dev/null 2>&1
script: |
const fs = require('fs');
const { Parser } = require('json2csv');
// Product prices in our simulation
const productPrices = {
'T-shirt': 20,
'Jeans': 75,
'Shoes': 80,
'Socks': 5,
'Hat': 25
}
const generateOrder = () => {
const products = ['T-shirt', 'Jeans', 'Shoes', 'Socks', 'Hat'];
const statuses = ['pending', 'shipped', 'delivered', 'cancelled'];
const randomProduct = products[Math.floor(Math.random() * products.length)];
const randomStatus = statuses[Math.floor(Math.random() * statuses.length)];
const randomQuantity = Math.floor(Math.random() * 10) + 1;
const order = {
product: randomProduct,
status: randomStatus,
quantity: randomQuantity,
total: randomQuantity * productPrices[randomProduct]
};
return order;
}
let totalSales = 0;
let orders = [];
for (let i = 0; i < 100; i++) {
const order = generateOrder();
orders.push(order);
totalSales += order.total;
}
console.log(`Total sales: $${totalSales}`);
const fields = ['product', 'status', 'quantity', 'total'];
const json2csvParser = new Parser({ fields });
const csvData = json2csvParser.parse(orders);
fs.writeFileSync('{{ outputDir }}/orders.csv', csvData);
console.log('Orders saved to orders.csv');
yaml
id: nodejs_script
namespace: company.team
tasks:
- id: node
type: io.kestra.plugin.scripts.node.Script
beforeCommands:
- npm i @kestra-io/libs
script: |
const Kestra = require('@kestra-io/libs');
Kestra.outputs({test: 'hello world'});
- id: get_outputs
type: io.kestra.plugin.core.log.Log
message: "{{ outputs.node.vars.test }}"
yaml
id: node_custom_package
namespace: company.team
tasks:
- id: script
type: io.kestra.plugin.scripts.node.Script
inputFiles:
package.json: |
{
"name": "your_project_name",
"version": "1.0.0",
"type": "module",
"dependencies": {
"colors": "^1.4.0"
}
}
beforeCommands:
- npm install
script: |
import colors from 'colors';
console.log(colors.red("Hello"));
Properties
script*Requiredstring
beforeCommandsarray
SubTypestring
containerImagestring
Default
nodeenvobject
SubTypestring
failFastbooleanstring
Default
trueinputFilesobjectstring
interpreterarray
SubTypestring
Default
["/bin/sh","-c"]namespaceFilesNon-dynamic
Definitions
io.kestra.core.models.tasks.NamespaceFiles
enabledbooleanstring
Default
trueexcludearray
SubTypestring
folderPerNamespacebooleanstring
Default
falseifExistsstring
Default
OVERWRITEPossible Values
OVERWRITEFAILWARNIGNOREincludearray
SubTypestring
namespacesarray
SubTypestring
Default
["{{flow.namespace}}"]outputFilesarray
SubTypestring
targetOSstring
Default
AUTOPossible Values
LINUXWINDOWSAUTOtaskRunnerNon-dynamic
Definitions
Run a task in a Docker container.
type*Requiredobject
configstringobject
cpu
io.kestra.plugin.scripts.runner.docker.Cpu
cpusnumberstring
credentials
Credentials for a private container registry.
authstring
identityTokenstring
passwordstring
registrystring
registryTokenstring
usernamestring
deletebooleanstring
Default
truedeviceRequestsarray
A request for devices to be sent to device drivers.
capabilitiesarray
SubTypearray
countintegerstring
deviceIdsarray
SubTypestring
driverstring
optionsobject
SubTypestring
entryPointarray
SubTypestring
Default
[
""
]extraHostsarray
SubTypestring
fileHandlingStrategystring
Default
VOLUMEPossible Values
MOUNTVOLUMEhoststring
killGracePeriodstring
Default
PT0SFormat
durationmemory
io.kestra.plugin.scripts.runner.docker.Memory
kernelMemorystring
memorystring
memoryReservationstring
memorySwapstring
memorySwappinessstring
oomKillDisablebooleanstring
networkModestring
portBindingsarray
SubTypestring
privilegedbooleanstring
pullPolicyobject
resumebooleanstring
Default
trueshmSizestring
userstring
versionstring
volumesarray
SubTypestring
waitbooleanstring
Default
trueTask runner that executes a task as a subprocess on the Kestra host.
type*Requiredobject
versionstring
Task runner that executes a task inside a job in Google Cloud Batch.
region*Requiredstring
type*Requiredobject
bucketstring
completionCheckIntervalstring
Default
PT5SFormat
durationcomputeResource
io.kestra.plugin.ee.gcp.runner.Batch-ComputeResource
bootDiskstring
cpustring
memorystring
deletebooleanstring
Default
trueentryPointarray
SubTypestring
impersonatedServiceAccountstring
lifecyclePoliciesarray