.NET で Cloud Functions の関数を作成してデプロイする
Cloud Functions は、クラウド サービスの作成と接続に使用できるサーバーレスの実行環境です。Cloud Functions を使用すると、クラウドのインフラストラクチャやサービスで生じたイベントに関連する、単一目的のシンプルな関数を作成できます。関数は、HTTP リクエストが外部に送信されるか、監視対象のイベントが発生するとトリガーされます。
Cloud Console を使用して .NET Core 3.1 で Cloud Functions の関数を作成し、デプロイする方法を説明します。
このタスクを Cloud Console で直接行う際の順を追ったガイダンスについては、[ガイドを表示] をクリックしてください。
以降のセクションでは、[ガイドを表示] をクリックした場合と同じ手順について説明します。
この C# 関数は、HTTP リクエストによってトリガーされると次のメッセージを書き込みます。
using Google.Cloud.Functions.Framework; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Logging; using System.IO; using System.Text.Json; using System.Threading.Tasks; namespace SimpleHttpFunction { public class Function : IHttpFunction { private readonly ILogger _logger; public Function(ILogger<Function> logger) => _logger = logger; public async Task HandleAsync(HttpContext context) { HttpRequest request = context.Request; // Check URL parameters for "message" field string message = request.Query["message"]; // If there's a body, parse it as JSON and check for "message" field. using TextReader reader = new StreamReader(request.Body); string text = await reader.ReadToEndAsync(); if (text.Length > 0) { try { JsonElement json = JsonSerializer.Deserialize<JsonElement>(text); if (json.TryGetProperty("message", out JsonElement messageElement) && messageElement.ValueKind == JsonValueKind.String) { message = messageElement.GetString(); } } catch (JsonException parseException) { _logger.LogError(parseException, "Error parsing JSON request"); } } await context.Response.WriteAsync(message ?? "Hello World!"); } } }
始める前に
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Functions and Cloud Build APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Functions and Cloud Build APIs.
関数を作成する
Cloud Console で Functions の概要ページを開きます。
Cloud Functions を有効にしたプロジェクトが選択されていることを確認します。
[関数を作成] をクリックします。
関数に名前を付けます。
[トリガー] フィールドで、[HTTP] を選択します。
[認証] フィールドで、[未認証の呼び出しを許可する] を選択します。
[保存] をクリックして変更を保存し、[次へ] をクリックします。
[ソースコード] フィールドで [インライン エディタ] を選択します。この演習では、エディタで提供されているデフォルト関数を使用します。
[ランタイム] プルダウンで、.NET Core 3.1 ランタイムを選択します。
関数をデプロイする
ページの下部にある [デプロイ] をクリックします。
[デプロイ] をクリックすると、Cloud Console に Cloud Functions の概要ページが表示されます。
関数のデプロイ中は、関数の横に小さいスピナーのアイコンが表示されます。デプロイが完了すると、スピナーが緑のチェックマークに変わります。
関数をテストする
関数のメニューを表示して、[関数をテスト] をクリックします。
テストページで、[関数をテスト] をクリックします。
[出力] 画面にテキスト
"Hello World!"
が表示されます。ここで、メッセージを変更します。[トリガーとなるイベント] フィールドに、テキスト「
{"message":"Hello, YOUR_NAME!"}
」を入力し(YOUR_NAME
は名前に置き換えてください)、[関数をテスト] をクリックします。たとえば、「Rowan」という名前を入力したとします。[出力] フィールドに、「
Hello, Rowan!
」というメッセージが表示されます。[ログ] フィールドにステータス コード 200 が表示されていれば、成功しています。
ログを表示する
ログ履歴内のアクションを確認するには、ログを開いてチェックします。
- Cloud Functions の概要ページに戻り、関数のメニューを表示し、[ログを表示] をクリックします。
ログの履歴が表示されます。