prep for 1.17 release (#79)

3 files changed
tree: dacf6e929d06b790d972a87cb38bd2c4cc1f2d71
  1. .github/
  2. core/
  3. gradle/
  4. tests/
  5. tools/
  6. .asf.yaml
  7. .gitignore
  8. .scalafmt.conf
  9. build.gradle
  10. CONTRIBUTING.md
  11. gradlew
  12. gradlew.bat
  13. LICENSE.txt
  14. NOTICE.txt
  15. README.md
  16. settings.gradle
README.md

Apache OpenWhisk runtimes for .NET

License Continuous Integration

Give it a try today

Create a C# project called Apache.OpenWhisk.Example.Dotnet:

dotnet new classlib -n Apache.OpenWhisk.Example.Dotnet -lang "C#"
cd Apache.OpenWhisk.Example.Dotnet

Install the Newtonsoft.Json NuGet package as follows:

dotnet add package Newtonsoft.Json -v 13.0.1

Now create a file called Hello.cs with the following content:

using System;
using Newtonsoft.Json.Linq;

namespace Apache.OpenWhisk.Example.Dotnet
{
    public class Hello
    {
        public JObject Main(JObject args)
        {
            string name = "stranger";
            if (args.ContainsKey("name")) {
                name = args["name"].ToString();
            }
            JObject message = new JObject();
            message.Add("greeting", new JValue($"Hello, {name}!"));
            return (message);
        }
    }
}

Publish the project as follows:

dotnet publish -c Release -o out

Zip the published files as follows:

cd out
zip -r -0 helloDotNet.zip *

Create the action

wsk action update helloDotNet helloDotNet.zip --main Apache.OpenWhisk.Example.Dotnet::Apache.OpenWhisk.Example.Dotnet.Hello::Main --kind dotnet:6.0

For the return result, not only support dictionary but also support array

So a very simple hello array function would be:

using System;
using Newtonsoft.Json.Linq;

namespace Apache.OpenWhisk.Tests.Dotnet
{
    public class HelloArray
    {
        public JArray Main(JObject args)
        {
            JArray jarray = new JArray();
            jarray.Add("a");
            jarray.Add("b");
            return (jarray);
        }
    }
}

And 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:

using System;
using Newtonsoft.Json.Linq;

namespace Apache.OpenWhisk.Tests.Dotnet
{
    public class HelloPassArrayParam
    {
        public JArray Main(JArray args)
        {
            return (args);
        }
    }
}

Changelogs

Quick Start Guides

License

Apache 2.0