IBM Cloud Functions Shell
Composer is an IBM Cloud Functions programming model for composing individual functions into larger applications. Compositions, informally named apps, run in the cloud using automatically managed compute and memory resources. Composer is an extension of the function-as-a-service computing model, and enables stateful computation, control flow, and rich patterns of data flow.
This npm package provides the IBM Cloud Functions Shell, an Electron-based development tool for Composer.
First, install the Shell:
npm install -g @ibm-functions/shell
This will provide you with a
fsh command. From there, you can begin
to program your compositions. For more detailed documentation, please
the main docs page.
As a first task, you may use one of the built-in demo apps:
fsh app preview @demos/hello.js
You should then see a visualization of this simple hello world app:
|Composition preview showing the control flow for the app.|
From there, you can visit the Code tab, copy it into your favorite
editor, and modify it to your liking. The
app preview visualization
will automatically update as you edit and save the source file.
Next, you may deploy and invoke your app:
fsh app create hello @demos/hello.js fsh app invoke hello -p name composer
Finally, if you wish to visualize the execution flow:
fsh session get --last
Or, more generally, you can use
fsh session list recent sessions,
and do a
fsh session get against a specific session id from that list.
For more information, we encourge you to consult the the full docs page.
Launching the Full Experience
The tool has an internal REPL that can be helpful for exploring and refining your creations. To launch this experience:
On MacOS, you can pin the app to your dock. From there, you need only click on the dock icon to launch the tool.
The shell also includes visualizations of execution activity. For
example, you can use
fsh grid to see a grid view of your recent
activity. If you specify
fsh grid compName, the view will be limited
to the functions used by the given composition.