2016-12-08 9 views
1

Git連続デプロイメントを使用してWindows Azure Appサービスとしてデプロイする、かなり大きなNodeJSアプリケーションでwebpackを使用しようとしています。長いデプロイメント停止なしでwebpack + nodejsでazureアプリケーションサービスを使用する

私のkudu deploy.shスクリプトをwebpackを実行するようにカスタマイズしましたが、Azure App Serviceでwebpackするのに数分かかるため、その間はアプリケーションを利用できません。私の開発者のラップトップでは、webpackを実行するには約30秒かかります(これはデプロイメントの停止時間として受け入れることができます)。しかし、私はSSDを使ってノートパソコンを推測しています。

デプロイスクリプトを使用していた場合は、私のdevマシンでwebpackを実行し、結果をサーバーにプッシュしますが、継続的なデプロイメントのためにgitを使用しています。 Webpackで生成されたコードをGitリポジトリに変更します。

Azure App ServiceベースのNodeJSアプリでwebpack-on-deployを実行する方法はありますか?

答えて

2

デプロイメントの停止時間を短縮する代わりに、deployment slotを活用して、その時間にアプリを使用できないようにしてください。

パーアズールのマニュアル、

は、最初のスロットにWebアプリケーションを展開し、生産 にそれを交換するには、スロットのすべてのインスタンスが が生産にスワップされる前にウォームアップされることが保証されます。これにより、ウェブアプリ をデプロイする際の停止時間がなくなります。トラフィックのリダイレクトはシームレスであり、スワップ操作の結果として の要求はドロップされません。このワークフロー全体は であり、プレスワップの検証には が必要でないときに自動スワップを設定することで自動化できます。

デプロイメントスロットをウェブアプリケーションに追加する方法については、https://docs.microsoft.com/en-us/azure/app-service-web/web-sites-staged-publishingを参照してください。

+0

ニース!これはautoswapと組み合わせて使用​​するとすぐに問題になりますが、いくつかの新しい問題が発生します。これは、各展開+スワップのステージングと本番の両方のスロットから展開ログと展開履歴を消去するためです。なぜ、(単一のWebサービスを遅くしても)デプロイスクリプトの実行中にサービスが停止する必要があるのはなぜか分かりません...インスタンス全体を交換する必要はなく、別のフォルダとスワップフォルダで実行しないでください? – Seth

関連する問題