Skip to main content
Version: Next

Configure process runtime

You can use the default configurations of process runtime in the conf/functions_worker.yml file.

If you want to customize more parameters, refer to the following example.

functionRuntimeFactoryClassName: org.apache.pulsar.functions.runtime.process.ProcessRuntimeFactory
functionRuntimeFactoryConfigs:
# the directory for storing the function logs
logDirectory:
# change the jar location only when you put the java instance jar in a different location
javaInstanceJarLocation:
# change the python instance location only when you put the python instance jar in a different location
pythonInstanceLocation:
# change the extra dependencies location:
extraFunctionDependenciesDir:

For more details, see code.

Set runtime parameter with configuration file

Pulsar Functions now supports setting runtime parameters using a configuration file in Python.

Example

You can start a Python runtime using the configuration file config.ini with the following command.

pulsar-admin functions localrun \
--py /path/to/python_instance.py \
--config-file /path/to/config.ini \
--classname MyFunction \
--logging_level debug \
--inputs persistent://public/default/my-input-topic \
--output persistent://public/default/my-output-topic \
--log-topic persistent://public/default/functions-logs

--config-file is the path to the configuration file. Note that:

  • The --config-file should be written in .ini format, with each parameter being configured as key = value.

    Example

    [DEFAULT]
    logging_level = info
    max_pending_async_requests = 1000
    max_concurrent_requests = 50
  • When you set a parameter through both the configuration file and the command line, like logging_level in the example above, the value set through the command line will take precedence over the one set through the configuration file. As a result, the value of logging_level is debug.