.NET 言語
別の .NET 言語(C#、Visual Basic、F#)を使用して関数を記述できます。コアタスクはすべての言語で同じで、Functions Framework インターフェースのいずれかを実装するクラスを作成します。
IHttpFunction
- 汎用
ICloudEvent<T>
- 汎用でない
ICloudEvent
このドキュメントでは、F# と Visual Basic の例を紹介します。
テンプレート
このドキュメントの例では、テンプレートを使用します。
.NET SDK をインストールします。
テンプレート パッケージをインストールします。
dotnet new install Google.Cloud.Functions.Templates
C#(デフォルト)、F#、Visual Basic の 3 種類の関数用のテンプレートが用意されています。テンプレートから新しいプロジェクトを作成するときは、-lang f#
を指定して F# プロジェクトを作成するか、-lang vb
を指定して Visual Basic プロジェクトを作成します。たとえば、Visual Basic 用に新しい型なしの CloudEvent 関数を作成するには、次のコマンドを実行します。
dotnet new gcf-untyped-event -lang vb
F# と Visual Basic の例については、.NET 言語をご覧ください。
HTTP 関数の例
HTTP 関数は、HTTP(S) リクエストを介して関数を呼び出す必要のある場合に使用します。次の例では、"Hello World!"
というメッセージを出力します。
F#
Visual Basic
HTTP に関するプロジェクト ファイルの例
上記のサンプルのプロジェクト ファイルは次のとおりです。
F#
Visual Basic
HTTP 関数のデプロイ
F#
gcloud functions deploy fsharp-helloworld --entry-point HelloWorldFSharp.Function --runtime dotnet6 --trigger-http --allow-unauthenticated
Visual Basic
gcloud functions deploy vb-helloworld --entry-point HelloWorldVb.CloudFunction --runtime dotnet6 --trigger-http --allow-unauthenticated
CloudEvent の例
Pub/Sub トピックのメッセージ、Cloud Storage バケットの変更、Firebase イベントなどの非同期イベントによって Cloud Run functions の関数を間接的に呼び出す場合は、CloudEvent 関数を使用します。
F#
Visual Basic
CloudEvent 関数のデプロイ
F#
gcloud functions deploy fsharp-hello-pubsub --entry-point HelloPubSubFSharp.Function --runtime dotnet6 --trigger-topic my-topic --allow-unauthenticated
Visual Basic
gcloud functions deploy vb-hello-pubsub --entry-point HelloPubSubVb.CloudFunction --runtime dotnet6 --trigger-topic my-topic --allow-unauthenticated
CloudEvent の例をテストする
次の手順に沿って、CloudEvent の例をテストできます。
Pub/Sub トピックにメッセージを公開して、関数をトリガーします。
gcloud pubsub topics publish my-topic --message Flurry
ログを確認します。
gcloud functions logs read --limit 10
Pub/Sub トピックに公開した名前を含むメッセージが次のように表示されます。
D my-function ... Function execution started
I my-function ... Hello Flurry!
D my-function ... Function execution took 39 ms, finished with status: 'ok'