.NET ランタイム
概要
Cloud Run 関数は、オペレーティング システムのバージョンに加えて、アドオン パッケージ、言語サポート、お使いの関数をサポートして呼び出す Functions Framework ライブラリで構成される環境で実行されます。この環境は言語バージョンで識別され、ランタイムとして知られています。
ランタイムに関する一般的な情報と、各 .NET ランタイムが使用する Ubuntu のバージョンについては、Cloud Run functions 実行環境をご覧ください。
Cloud Run functions で .NET の使用を開始するには、クイックスタートをご覧ください。
テンプレート パッケージ
テンプレート パッケージを使用すると、新しい関数を簡単に作成できます。使用方法は次のとおりです。
.NET SDK をインストールします。
テンプレート パッケージをインストールします。
dotnet new install Google.Cloud.Functions.Templates
C#(デフォルト)、F#、Visual Basic の 3 種類の関数用のテンプレートが用意されています。テンプレートから新しいプロジェクトを作成するときは、-lang f#
を指定して F# プロジェクトを作成するか、-lang vb
を指定して Visual Basic プロジェクトを作成します。詳しくは以下をご覧ください。
.NET Functions Framework のバージョンの選択
.NET Functions Framework のバージョンによって、サポートされるランタイムが異なります。バージョン 1 は .NET Core 3.1 以降をサポートし、デフォルトのテンプレートは .NET Core 3.1 です。バージョン 2 は .NET 6 以降をサポートし、デフォルトのテンプレートは .NET 6 です。
.NET Functions Framework バージョン 1 を使用して既存のプロジェクトをアップグレードするには、プロジェクト ファイルを編集するか Visual Studio を使用して、Google.Cloud.Functions
で始まるすべての依存関係を最新バージョンに更新し、ターゲット フレームワークを .NET 6 に設定します。
ランタイムを選択する
Cloud Run functions は、ランタイム サポートのページに記載されている複数のバージョンの .NET をサポートしています。関数をデプロイするときに、ターゲット フレームワークに対応する .NET ランタイムをプロジェクト ファイル(MyFunction.csproj
など)に指定する必要があります。.NET ランタイムを指定するには:
gcloud
Google Cloud CLI を使用している場合は、--runtime
パラメータを使用してランタイムを指定します。--entry-point
フラグには、完全修飾クラス名(FQN)を指定します。例:
gcloud functions deploy NAME --entry-point FQN --runtime dotnet8 --trigger-http FLAGS...
FLAGS...
は関数の最初のデプロイ時に渡される引数です。必須の引数と省略可能な引数の詳細については、Google Cloud CLI を使用してデプロイするをご覧ください。
コンソール
Google Cloud コンソールを使用している場合は、Google Cloud コンソール クイックスタートで詳しい手順をご覧ください。
関数の準備
関数は、Google Cloud コンソールから直接準備することも、ローカルマシンで作成してアップロードすることもできます。.NET 開発用にローカルマシンを準備するには、.NET 開発環境の設定をご覧ください。
関数を呼び出すライブラリは .NET Functions Framework です。
Cloud Run functions で .NET の使用をすぐに開始するには、クイックスタートをご覧ください。
ソースコードの構造
Cloud Run functions で関数の定義を見つけられるよう、ランタイムごとに、ソースコードの構造に対する特定の要件があります。詳細については、Cloud Run functions を作成するをご覧ください。
依存関係の指定
関数の依存関係は、プロジェクト ファイルに追加することで指定できます。詳細については、.NET での依存関係を指定するをご覧ください。
次のステップ
- 最初の C# 関数をゼロから作成する。
- Cloud Run functions の作成に使用できる他の .NET 言語(F#、Visual Basic)について学習する。