2017-05-02 12 views
0

私たちはTeamCityで構築しているNodeJsプロジェクトを持っています。その後、FTPを使ってAzure Webアプリケーション(.azurewebsites)にビルドしたファイルをアップロードします。プロジェクトには何千ものファイルが含まれているため、FTPのアップロード時間は非常に遅い(非常に長い時間がかかります)。ビルドをZIPファイルとしてパッケージ化し、FTPでZIPをアップロードする方がはるかに高速です。しかし、スクリプトを使用してAzure上でZIPファイルを解凍するにはどうすればよいですか?NodeJSプロジェクトをAzure Webサイトにデプロイする方法は?

または、Azure Webアプリケーションにビルドを展開するためのより良い方法がありますか?

NOTES

  • これは、AzureのWebアプリケーションサービスで、VM
  • に住んでいない私たちのプロセスは、CI/CD
  • Gitリポジトリを持つ
  • 展開をサポートするためのスクリプトで自動化する必要があります他のレポは実行できません。

答えて

2

Kudu APIまたはMsBuildを使用して、Azure Appサービスにアプリ(Webアプリケーションまたは機能)をデプロイできます。展開は、通常、2つの部分で行われます。ARMのテンプレートを使用して

  1. 配布アプリサービス
  2. 展開コード/アプリケーションあなたはVSTSを使用している場合は、これらの方法の1

を使用して、そこにあります両方のステップのテンプレートを作成し、セットアップに2分のプロセスにします。 VSTSを使用していない場合は、Kudu APIを使用して問題を解決することをお勧めします。

あなたはここでより多くの情報を見つけることができます。https://github.com/projectkudu/kudu/wiki/REST-API

また同じことを達成するためのAzureのPowerShell管理コマンドレットを使用することができます。ただし、現時点ではWindows上でのみサポートされています

+0

Chrisありがとうございます。 PowerShellでKudu REST APIを試したところ、うまくいきましたが、「Invoke-RestMethod:操作がタイムアウトしました」というエラーが表示されました。 Azureサイトのcmdコンソールから、Zipの内容を見ることができるので、ここでは何かが働いていたはずですが、タイムアウトエラーのためにプロセス全体が完了したかどうかはわかりません。 – Keith

+0

ところで、Azure PowerShellコマンドレットのいくつかを見てきました。特に、「Publish-AzureWebsiteProject」のように見えました。ただし、このコマンドレットには、Azureサブスクリプションを表示しない「Select-AzureSubscription」コマンドレットが必要です。しかし、 'Select-AzureRmSubscription'は私のサブスクリプションを表示しますが、このコマンドレットは' Publish-AzureWebsiteProject'では動作しません。ここにどんなアイデア? AzureRmの発行用コマンドレットはありますか? – Keith

+1

Kudu REST APIのInvoke-RestMethodについては、タイムアウトエラーを助けるために以下を追加しました: '-TimeoutSec 240'。これはうまくいくように見えるので、今はKuduと一緒に行くつもりです。再度、感謝します! – Keith

関連する問題