The pycompose
command compiles composition code to a portable JSON format. The
pydeploy
command deploys JSON-encoded compositions. These commands are intended
as a minimal complement to the OpenWhisk CLI. The OpenWhisk CLI already has the
capability to configure, invoke, and delete compositions since these are just
OpenWhisk actions but lacks the capability to create composition actions. The
pycompose
and pydeploy
commands bridge this gap. They make it possible to deploy
compositions as part of the development cycle or in shell scripts. They do not
replace the OpenWhisk CLI however as they do not duplicate existing OpenWhisk
CLI capabilities.
pycompose
Usage:
compose composition.py [flags]
Flags:
--ast only output the ast for the composition
-v, --version output the composer version
The pycompose
command takes a Python script that defines main()
returning a
composition object (for example demo.py) and compiles this object to a
portable JSON format on the standard output.
compose demo.py > demo.json
If the --ast
option is specified, the pycompose
command only outputs a JSON
representation of the Abstract Syntax Tree for the composition.
pydeploy
Usage:
pydeploy composition composition.json [flags]
Flags:
-a, --annotation KEY=VALUE add KEY annotation with VALUE
-A, --annotation-file KEY=FILE add KEY annotation with FILE content
--apihost HOST API HOST
-i, --insecure bypass certificate checking
-u, --auth KEY authorization KEY
-v, --version output the composer version
-w, --overwrite overwrite actions if already defined
The pydeploy
command deploys a JSON-encoded composition with the given name.
pydeploy demo demo.json -w
ok: created /_/authenticate,/_/success,/_/failure,/_/demo
The pydeploy
command synthesizes and deploys a conductor action that implements
the composition with the given name. It also deploys the composed actions for
which definitions are provided as part of the composition.
The pydeploy
command outputs the list of deployed actions or an error result. If
an error occurs during deployment, the state of the various actions is unknown.
The -w
option authorizes the pydeploy
command to overwrite existing
definitions. More precisely, it deletes the deployed actions before recreating
them. As a result, default parameters, limits, and annotations on preexisting
actions are lost.
The pydeploy
command implicitly annotates the deployed composition action with
the required conductor
annotations. Other annotations may be specified by
means of the flags:
-a, --annotation KEY=VALUE add KEY annotation with VALUE
-A, --annotation-file KEY=FILE add KEY annotation with FILE content
Like the OpenWhisk CLI, the pydeploy
command supports the following flags for
specifying the OpenWhisk instance to use:
--apihost HOST API HOST
-i, --insecure bypass certificate checking
-u, --auth KEY authorization KEY
If the --apihost
flag is absent, the environment variable __OW_API_HOST
is
used in its place. If neither is available, the pydeploy
command extracts the
APIHOST
key from the whisk property file for the current user.
If the --auth
flag is absent, the environment variable __OW_API_KEY
is used
in its place. If neither is available, the pydeploy
command extracts the AUTH
key from the whisk property file for the current user.
The default path for the whisk property file is $HOME/.wskprops
. It can be
altered by setting the WSK_CONFIG_FILE
environment variable.