Google Cloud 上の .NET 5.0
Google Cloud Japan Team
※この投稿は米国時間 2020 年 11 月 20 日に、Google Cloud blog に投稿されたものの抄訳です。
.NET 5.0 が数日前にリリースされました。多くの新機能を備え、さらなる進化を遂げました。C# 9 サポートや F# 5 サポートなども追加されています。.NET 5.0 は、昨年発表された統合型 .NET ビジョンの最初のリリースです。今後、Windows、Linux、macOS などを対象とする .NET は 1 つだけになります。
Google Cloud は、すでにさまざまなバージョンの .NET をサポートしています。従来の Windows ベースの .NET アプリは、Compute Engine の Windows サーバーまたは Google Kubernetes Engine(GKE)の Windows コンテナで実行できます。最新の Linux ベースのコンテナ化された .NET アプリでは、App Engine(Flex)、GKE、そして私のお気に入りの Cloud Run と、選択肢が増えました。そしてもちろん、Cloud Functions の .NET Core 3.1 は現在サーバーレスの .NET 関数向けにプレビュー版でサポートされています。
本ブログ投稿の残りの部分では、.NET 5.0 を Cloud Run にデプロイする方法をご紹介します。Cloud Run を使用すると、フルマネージド型のプラットフォームにコンテナ化されたアプリを簡単にデプロイし、スケールできます。
.NET 5.0
まず、最新バージョンの .NET 5.0 がインストールされていることを確認してください。
ASP.NET のチュートリアルに従って、ASP.NET フレームワークでウェブアプリを作成してみましょう。プレーンな HTTP サポートを備えたシンプルなウェブアプリを作成します。
Cloud Run のアプリは PORT 環境変数をリッスンする必要があります。そのために、Program.cs ファイルの CreateHostBuilder 関数を変更します。
また、Index.cshtml ファイルのデフォルトのウェルカム メッセージを変更して、以下のようなウェルカム メッセージを表示してみましょう。
変更後は、ローカルでアプリをビルドして実行できます。ポート 8080 をリッスンするサーバーが起動されます。
.NET 5.0 のコンテナ化
アプリをコンテナ化するには、Dockerfile を作成します。.NET 5.0 のリリースに伴い、.NET Core 2.1/3.1 と .NET 5.0 用の Docker タグはすべて統合された Docker リポジトリに公開されることに注意してください(2375 をご覧ください)。リポジトリの名前は、オリジナルのものから変更され、名前に「core」が含まれなくなりました。
5.0 バージョンで新しい dotnet/sdk と dotnet/aspnet のベースイメージを使用するアプリの Docekerfile は以下のとおりです。
Cloud Build で Docker イメージを Google Container Registry にビルドして保存します。
Cloud Run へのデプロイ
いよいよ、Cloud Run にデプロイします。
数秒後に、サービスがデプロイされます。
サービス URL にアクセスすると、以下のページが表示されます。
もちろん、.NET のサポートは Cloud Run だけに限りません。サポート内容に関しては、Google Cloud 上の .NET をご覧ください。
-デベロッパー アドボケイト Mete Atamel