A very simple hello world function would be:
defmain(args)name=args["name"] || "stranger"greeting="Hello #{name}!"putsgreeting{"greeting"=>greeting}endFor the return result, not only support dictionary but also support array
So a very simple hello array function would be:
defmain(args)nums=Array["a","b"]numsendAnd support array result for sequence action as well, the first action's array result can be used as next action's input parameter.
So the function can be
defmain(args)argsendTo use as a docker action
wsk action update myAction my_action.rb --docker openwhisk/action-ruby-v2.5 This works on any deployment of Apache OpenWhisk
To use as a kind action
wsk action update myAction my_action.rb --kind ruby:2.5 ./gradlew core:ruby2.5Action:distDocker This will produce the image whisk/action-ruby-v2.5
Build and Push image
docker login ./gradlew core:ruby2.5Action:distDocker -PdockerImagePrefix=$prefix-user -PdockerRegistry=docker.io Deploy OpenWhisk using ansible environment that contains the kind ruby:2.5 Assuming you have OpenWhisk already deploy locally and OPENWHISK_HOME pointing to root directory of OpenWhisk core repository.
Set ROOTDIR to the root directory of this repository.
Redeploy OpenWhisk
cd $OPENWHISK_HOME/ansible ANSIBLE_CMD="ansible-playbook -i ${ROOTDIR}/ansible/environments/local" $ANSIBLE_CMD setup.yml $ANSIBLE_CMD couchdb.yml $ANSIBLE_CMD initdb.yml $ANSIBLE_CMD wipe.yml $ANSIBLE_CMD openwhisk.yml Or you can use wskdev and create a soft link to the target ansible environment, for example:
ln -s ${ROOTDIR}/ansible/environments/local ${OPENWHISK_HOME}/ansible/environments/local-ruby wskdev fresh -t local-ruby To use as docker action push to your own dockerhub account
docker tag whisk/ruby2.5Action $user_prefix/action-ruby-v2.5 docker push $user_prefix/action-ruby-v2.5 Then create the action using your image from Docker Hub.
wsk action update myAction my_action.rb --docker $user_prefix/action-ruby-v2.5 The $user_prefix is usually your dockerhub user id.
Install dependencies from the root directory on $OPENWHISK_HOME repository
./gradlew install Using gradle to run all tests
./gradlew :tests:test Using gradle to run some tests
./gradlew :tests:test --tests *ActionContainerTests* Using IntelliJ:
- Import project as gradle project.
- Make sure the working directory is root of the project/repo.