Run Pipelines
A Flowpipe pipeline is a sequence of steps to do work. Pipelines are distributed in mods. To run a pipeline, change to the mod directory and run flowpipe pipeline run {pipeline name}
:
cd ~/src/flowpipe-samples/networking/ip_profilerflowpipe pipeline run abuseipdb.pipeline.list_blacklisted_ip_addresses
By default, Flowpipe will load the mod from the current working directory, but you can load a mod from another directory and run its pipelines with the --mod-location
argument:
flowpipe pipeline run abuseipdb.pipeline.list_blacklisted_ip_addresses --mod-location ~/src/flowpipe-samples/networking/ip_profiler
If you are running a Flowpipe server you can connect to the server instance and run one of its pipelines on the server with the --host
argument:
flowpipe pipeline run abuseipdb.pipeline.list_blacklisted_ip_addresses --host local
By default, flowpipe pipeline run
will stream event information to the console as the pipeline runs, and will wait for the pipeline to complete before exiting. If you are running against a server instance (with --host
) then you can choose to run the command asynchronously instead. If you pass the --detach
flag, Flowpipe will not wait for the pipeline to complete:
flowpipe pipeline run abuseipdb.pipeline.list_blacklisted_ip_addresses --host local --detach
If you have defined workspaces you can use a workspace with the --workspace
argument:
flowpipe pipeline run abuseipdb.pipeline.list_blacklisted_ip_addresses --workspace my_workspace
You can see what pipelines are available to run in the mod:
flowpipe pipeline list
The flowpipe pipeline show
command will provide more detail about a single pipeline, including usage information:
flowpipe pipeline show reallyfreegeoip.pipeline.get_ip_geolocation
As with all Flowpipe commands, you can specify a different output format if you prefer:
flowpipe pipeline list --output json
You can pass arguments for any pipeline parameters that are defined with the --arg
argument.
flowpipe pipeline run reallyfreegeoip.pipeline.get_ip_geolocation --arg ip_address=4.2.2.1
Complex types like lists and maps will need to be quoted - single quotes usually work best so you don't have to escape the inner double quotes:
flowpipe pipeline run ip_profiler.pipeline.ip_profiler --arg ip_addresses='["4.2.2.1","4.2.2.2","4.2.2.3"]'
You may pass multiple --arg
arguments as needed:
flowpipe pipeline run ip_profiler.pipeline.ip_profiler --arg ip_addresses='["4.2.2.1","4.2.2.2","4.2.2.3"]' --arg abuseipdb_max_age_in_days=90
Likewise, you can pass variables with one or more --var
arguments:
flowpipe pipeline run aws.pipeline.describe_ec2_instances --var region=us-east-1
Use flowpipe process list
to see the details of current and prior pipeline runs:
flowpipe process list
Or use flowpipe process show
to see the status of a single process, by its ID:
flowpipe process show exec_clppphbjtojfa9mh0tb0
If you started a pipeline run in a flowpipe server
instance, you can even tail the details of the pipeline process as it runs:
flowpipe pipeline tail exec_cls9gp3jtoje6h9om3e0 --host local