Linux用Azure Web Appに.NET Coreプロジェクトをデプロイする

LinuxベースのWebアプリにより、開発者はLinux用のDockerコンテナでWebアプリケーションを実行できます。 これにより、Linuxプラットフォーム用にホストおよび最適化された既存のアプリケーションをAzure App Serviceに簡単に移植できます。 さらに、開発者は、使い慣れたDockerおよびAzure App Serviceツールを使用して、さまざまなプログラミング言語とプラットフォームでアプリケーションをデプロイできます。



画像



Linux用Azure Web Appの新機能



Linux用Azure Webアプリは、Linuxアプリケーションを開発している場合でも、単にアプリケーションをコンテナー化する場合でも、開発者に多くの機会を提供します。 Linux用Azure Webアプリは、西オーストラリア、西ヨーロッパ、および東南アジアの地域で利用できます。



Linux対応App Serviceに追加されたいくつかの新機能:





スロット



デプロイスロットは、Azure App Serviceの最も一般的な機能の1つでした。 Linux用App Serviceの実装は、スロットのサポートなしでは完了しません! 「スロット」で既存のアプリケーションを複製し、テストスロットとWebアプリケーションの動作バージョンでのスロット間の切り替え操作を簡単に実行できます。



自動スケーリング



App Service Linuxおよびコンテナアプリケーションは、オンデマンドまたは自動的に簡単にスケーリングでき、自動スケールはCPU、ディスクキューの長さ、メモリトリガーをサポートします。



SSHサポート



SSHを使用して、アプリケーションを管理できます。 ブラウザにアドレスを入力して、SSH接続パラメーターを見つけます。



https://<mysite>.scm.azurewebsites.net/webssh/host.
      
      





まだ認証していない場合は、ログインする必要があります。 その後、次のようなものが表示されます。



画像



カスタムDockerコンテナのSSHを有効にするには、SSHサーバーを追加で構成する必要があります



Docker Hubから画像を自動的に公開する



新しいバージョンがDocker Hubで公開されると、Webアプリケーションが自動的にデプロイされます。



この機能を有効にするには:



  1. Docker Hubにフックを設定する

     https://<publishingusername>:<publishingpwd>@<sitename>.scm.azurewebsites.net/docker/hook
          
          





  2. DOCKER_ENABLE_CIという名前のWebアプリケーションの変数を作成し、その値をTRUEに設定します。


画像



その他の機能





.NET Coreプロジェクトの作成と展開



ターミナルを起動し、hellodotnetcoreというディレクトリを作成して、そこに移動します。 次に入力してください:



 dotnet new web
      
      





このコマンドは、現在のディレクトリに3つのファイル(hellodotnetcore.csproj、Program.cs、およびStartup.cs)と1つの空のディレクトリ(wwwroot /)を作成します。 .csprojファイルの内容は次のようになります。

  <!-- Empty lines are omitted. --> <Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>netcoreapp1.1</TargetFramework> </PropertyGroup> <ItemGroup> <Folder Include="wwwroot\" /> </ItemGroup> <ItemGroup> <PackageReference Include="Microsoft.AspNetCore" Version="1.1.2" /> </ItemGroup> </Project>
      
      





これはWebアプリケーションであるため、ASP.NET Coreパッケージへのリンクがhellodotnetcore.csprojファイルに自動的に追加されます。 パッケージのバージョン番号は、インストールされているSDKに従って設定されます。 .NET Core 1.1を使用するため、この例はASP.NET Coreバージョン1.1.2に適用されます。



次の2つのコマンドを使用して、.NET Coreアプリケーションをビルドおよび実行できます。



 dotnet restore dotnet run
      
      





アプリケーションが起動すると、着信リクエストがリッスンされているというメッセージが表示されます。



 Hosting environment: Production Content root path: C:\hellodotnetcore Now listening on: http://localhost:5000 Application started. Press Ctrl+C to shut down.
      
      





ブラウザでlocalhostを開いて、アプリケーションが正常に動作していることを確認します:5000 /

すべてうまくいけば、「He​​llo World!」というメッセージが表示されます。



Azureでの.NET Coreアプリケーションの公開



最初に行う必要があるのは、新しいWebアプリケーションを作成することです。 Azureポータルにログインし、Linux用のWebAppを作成します。



画像



次に、新しいアプリケーションを作成するためのパラメーターを指定します。



画像



パラメータ 価値 説明
アプリ名 こんにちは アプリの名前。 この名前は一意でなければなりません。
サブスクリプション 既存のサブスクリプションを選択してください Azureサブスクリプション。
リソースグループ myResourceGroup Webアプリを含めるAzureリソースグループ。
アプリサービスプラン 既存のApp Serviceプラン名 App Serviceプラン。
コンテナの構成 .NET Core 1.1 このWebアプリのコンテナのタイプ:ビルトイン、Docker、またはプライベートレジストリ。
画像ソース ビルトイン 画像のソース。
ランタイムスタック .NET Core 1.1 ランタイムスタックとバージョン。


次に、アプリケーションが完了したら、次の場所に移動してgitリポジトリのURLを見つけます。



 https://{your web app name}.scm.azurewebsites.net/api/scm/info
      
      





コマンドを実行して、アプリケーションをAzureにデプロイします。



 git init git remote add azure <Git deployment URL from above> git add *.csproj *.cs git commit -m "Initial deployment commit" git push azure master
      
      





Webアプリケーションはクラウドで自動的に構築されるため、bin /またはobj /ディレクトリのリポジトリにファイルを個別に追加する必要はありません。



結果は次のようになります。



 /* some output has been removed for brevity */ remote: Copying file: 'System.Net.Websockets.dll' remote: Copying file: 'System.Runtime.CompilerServices.Unsafe.dll' remote: Copying file: 'System.Runtime.Serialization.Primitives.dll' remote: Copying file: 'System.Text.Encodings.Web.dll' remote: Copying file: 'hellodotnetcore.deps.json' remote: Copying file: 'hellodotnetcore.dll' remote: Omitting next output lines... remote: Finished successfully. remote: Running post deployment commands... remote: Deployment successful. To https://hellodotnetcore.scm.azurewebsites.net/ * [new branch] master -> master
      
      





展開が完了したら、Webアプリケーションを再起動します。 これを行うには、Azureポータルに移動して、Webアプリケーションの[概要]ページを開き、[再起動]ボタンをクリックします。

再起動後、Webアプリケーションページを開きます。 次のようになります。



画像



ソース






All Articles