コンテンツに移動
Google Cloud

Google Cloud 上の .NET 5.0

2020年12月3日
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/sdkdotnet/aspnet のベースイメージを使用するアプリの Docekerfile は以下のとおりです。

読み込んでいます...

Cloud Build で Docker イメージを Google Container Registry にビルドして保存します。

読み込んでいます...

Cloud Run へのデプロイ

いよいよ、Cloud Run にデプロイします。

読み込んでいます...

数秒後に、サービスがデプロイされます。

読み込んでいます...

サービス URL にアクセスすると、以下のページが表示されます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/Screen_Shot_2020-11-13_at_4.20.48_PM.max-800x800.png

もちろん、.NET のサポートは Cloud Run だけに限りません。サポート内容に関しては、Google Cloud 上の .NET をご覧ください。

-デベロッパー アドボケイト Mete Atamel

投稿先