.Net ( core )アクションを利用する
Cloud Functionsでは、.Net コードを実行させられるアクションコンテナーを提供します。.Net 2.2バージョンを基本提供し、独立した環境でコードを実行することができます。
.Net Coreプロジェクトをコンパイル、テスト及び圧縮するためには、.Net Core SDKをローカルにインストールし、環境変数のDOTNET_HOME
をdotnet
の実行ファイルのある位置に設定する必要があります。
アクションを作成する
.Net Core Actionは、次のような.Net CoreのライブラリーとMain関数の構造で構成されています。
public Newtonsoft.Json.Linq.JObject Main(Newtonsoft.Json.Linq.JObject);
例えば、次ようなC#プロジェクトを作ってみます。NCP.CloudFunctions.Example.Dotnet
dotnet new classlib -n NCP.CloudFunctions.Example.Dotnet -lang "C#"
cd NCP.CloudFunctions.Example.Dotnet
そして、JSONを利用するために、Newtonsoft.Json NuGetパッケージを、以下のようにインストールします。
dotnet add package Newtonsoft.Json -v 12.0.1
では、Hello.cs
を以下のように作り、簡単なコードを作成してみます。
using System;
using Newtonsoft.Json.Linq;
namespace NCP.CloudFunctions.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);
}
}
}
プロジェクトの内容を発行するためには、以下のコマンドを実行することができます。
dotnet publish -c Release -o out
発行されたファイルをzipにするためには、以下のようなコマンドを入力します。
cd out
zip -r -0 helloDotNet.zip *
.Netを利用してActionを作る際、Main
関数部分は特に異なるように作成する必要があります。Main
関数は、{Assembly}::{Class Full Name}::{Method}
の形式でなればなりません。上記の例で作業すると、以下のように入力する必要があります。
NCP.CloudFunctions.Example.Dotnet::NCP.CloudFunctions.Example.Dotnet.Hello::Main
基本パラメータを設定する
毎回アクションを実行する度にパラメータを転送する代わりに、特定のパラメータに基本値を指定することができます。上記で作成したhelloアクションのplace
パラメータに基本値を登録してみます。
アクション実行時にパラメータを転送する
アクションの実行の際、入力でパラメータを転送することができます。Main関数に転送されるパラメータは、JSON object形式で転送されます。
パラメータは、アクションの実行の際に直接入力するか、JSON形式のファイルを作成して転送することができます。ファイルを通じてパラメータを転送する場合には、以下のようなJSON形式のファイルを作成する必要があります。
アクションのランタイム情報
各アクションコンテナーには、基本ライブラリーが内蔵されており、このライブラリーは別途の追加作業なしにインポートして利用することができます。
関連情報へ
下のガイドから関連情報をご確認いただけます。