背景と目的
Azure CLI で .NET 6 ランタイムの App Service が作れるようになったようなので、実際に試してみました。
前提条件
.NET 6 環境は、.Net 6.0.0 Preview 2 を Visual Studio Code から Docker 利用してみた で作成した環境を使用します。
コマンドの実施環境は、Mac + Azure CLI です。
zsh
% sw_vers
ProductName: macOS
ProductVersion: 11.4
BuildVersion: 20F71
% az version
{
"azure-cli": "2.24.2",
"azure-cli-core": "2.24.2",
"azure-cli-telemetry": "1.0.6",
"extensions": {}
}
実施内容
.NET 6 MVC でランタイム情報を表示するアプリを作成します。
bash
$ dotnet --version
6.0.100-preview.4.21255.9
$ dotnet new mvc -n mvcapp
$ cd mvcapp
$ cat << EOF > Views/Home/Index.cshtml
@using System.Runtime.InteropServices
@{
ViewData["Title"] = "Home";
}
<div class="text-center">
<h5>Environment</h5>
<p>@RuntimeInformation.FrameworkDescription (@RuntimeInformation.ProcessArchitecture)</p>
<p>@RuntimeInformation.OSDescription</p>
</div>
EOF
$ dotnet dev-certs https
$ dotnet run
https://localhost:5001
Ctrl+C
.NET 6 MVC アプリのディレクトリに移動して、Windows と Linux の App Service をそれぞれ作成します。なお、共同作成者権限でリソースグループの作成から App Service Plan と App Service の作成、カレントディレクトリの .NET 6 MVC アプリのアップロードまで、一連のリソース作成を一つのコマンドで実行します。
zsh
# 環境変数を設定します
region=southeastasia
prefix=mnrdndev
# Windows の App Service を作成します
az webapp up \
--resource-group ${prefix}-win-rg \
--location $region \
--plan ${prefix}-win-plan \
--name ${prefix}-win \
--runtime "DOTNET|6.0" \
--os-type Windows \
--sku F1
# 同じソースコードで Linux の App Service を試すので、Windows の App Service の情報を消します
rm -rf .azure
# Linux の App Service を作成します
az webapp up \
--resource-group ${prefix}-lnx-rg \
--location $region \
--plan ${prefix}-lnx-plan \
--name ${prefix}-lnx \
--runtime "DOTNET|6.0" \
--os-type Linux \
--sku F1
実施結果
Windows の App Service で表示されるランタイム情報です。
Linux の App Service で表示されるランタイム情報です。