IntelliJ IDEA からアプリのデプロイを管理する

完了

Azure Toolkit for IntelliJ では、Web アプリの管理、構成、および Azure App Service への再デプロイに使用できる、Azure Explorer のいくつかのツールが提供されます。 デプロイの要件がさらに複雑な場合は、[Deploy to Azure]\(Azure へのデプロイ\) ウィザードを使用して手順をカスタマイズできます。このウィザードでは、柔軟なアプリケーションのデプロイ システムが提供されています。

このユニットでは、これらの機能を使用して、Web アプリの管理、トラブルシューティング、デプロイ スロットの切り替え、プロパティの設定を行う方法について学習します。

Azure で Web アプリを管理およびトラブルシューティングする方法

IDE からデプロイされたアプリのトラブルシューティングを行うため、IntelliJ により次のような強力なツールが用意されています。

  • ログ ストリーミング
  • リモート エクスプローラー
  • アプリへのワンクリック SSH
  • 即座のプロファイル

これらのツールは Azure Explorer から簡単に使用できます。 [Azure Explorer] ウィンドウで、[Web Apps] フォルダー内の Web アプリを右クリックすると、メニューに便利なアクションがいくつか表示されます。

[Azure Explorer] ウィンドウのスクリーンショット。

コンテキスト メニューには、アプリの開始、停止、再起動のような、頻繁に使用されるアクションも多数あります。 [停止] コマンドを選択すると、Web アプリは新しい要求の受け付けを停止してシャットダウンし、Web アプリのアイコンが停止したことを示すアイコンに変わります。 Web アプリを起動するには、Web アプリのコンテキスト メニューの [開始] コマンドを使用します。 アプリが実行されると、アイコンは元の状態に戻ります。 停止している Web アプリをすばやくリセットする必要がある場合は、[再起動] コマンドを使用して、1 つの手順で Web アプリを停止して起動します。

デプロイの構成を使用する方法

Web アプリを Azure App Service にデプロイし、Standard、Premium、または Isolated レベルの App Service プランを使用している場合は、デプロイ スロットを使用してデプロイ プロセスを簡単にできます。 デプロイ スロットは、異なるホスト名を持つ Web アプリの別のインスタンスです。 2 つの異なるデプロイ スロットの Web アプリは、簡単にスワップできます。

Note

Free、Shared、Basic のサービス プラン レベルでは、デプロイ スロットはサポートされていません。

Azure でアプリ サービス インスタンスを作成すると、既定のデプロイ スロットが 1 つ作成されます。 このスロットは運用スロットです。 新しいバージョンのサイトをテストする場合は、2 番目のスロットを作成し、テスト スイートを実行するための新しいコードをそのスロットにデプロイすることができます。 テストの間、運用スロットには引き続き古いバージョンのコードが格納されていて提供されます。 新しいコードがすべてのテストに合格したら、スロットをスワップして運用環境にデプロイできます。 この操作により、新しいバージョンが運用スロットに移動され、古いコードはテスト スロットに移動されます。 ユーザーには、新しいバージョンのサイトが表示されるようになります。

この方法で新しいバージョンのアプリをデプロイすると、次のような利点があります。

  • 2 番目のスロットは運用スロットと非常によく似た環境であるため、テストとステージングを行うのに最適な場所です。
  • テスト中に検出されなかった問題が新しい運用サイトで見つかった場合は、簡単に素早く古いバージョンのサイトに戻すことができます。 スロットを再びスワップするだけです。
  • 入れ替える前に、Azure によってスロットのすべてのインスタンスがウォームアップされるので、ダウンタイムやパフォーマンスの低下がありません。

IntelliJ IDEA の [Deploy to Azure]\(Azure へのデプロイ\) ウィザードを使用して、デプロイ スロットを選択したり、新しいスロットを作成したりできます。

特定のデプロイ スロットへのデプロイのスクリーンショット。

Azure portal を使用してスワップを実行できます。

Azure portal を使用したデプロイ スロットのスワップのスクリーンショット。