0

Appveyor から Azure Web サイトに単一ページ アプリケーションを継続的にデプロイする方法を見つけようとしています。私は Azure に直接アクセスできないため、少し困っています。そのため、管理者に連絡する前にできるだけ多くの詳細を把握しようとしていますが、appveyor/azure のドキュメントにはいくつかの質問が残されています。

私の目標:

  1. ビルド後に静的サイトをデプロイするか、ビルドが成功した後に Azure をトリガーしてデプロイを実行します。このアプリは、コンパイルされて静的サイトにバンドルされる、angular およびその他の依存関係の束を使用して typescript で記述されています。
  2. 展開が行われていることをエンド ユーザーに知られたくないので、ライブ環境への増分コピーは行われません
  3. 派生ファイルやビルドをリポジトリにチェックインしたくありません。

現在、静的サイトを zip アーカイブにバンドルするビルド システムがあります。だから私の質問は:

  1. WebDeploy プロバイダーを使用すると、目標を達成できますか? zip アーカイブをアーティファクトとして展開すると、展開中にダウンタイムは発生しますか?
  2. よりうまく機能する別のアプローチはありますか?
  3. Azure の自動展開でこれを行う方法はありますか? たとえば、ビルドが成功した後に azure をトリガーしてデプロイします。その場合、デプロイ プロセスの一部としてプライベート サブモジュールのクローン作成を kudu で処理できます。サブモジュールのサポートがあることがわかりましたが、プライベート サブモジュールで認証の問題が発生するかどうか、ドキュメントからはわかりませんでした。

参考までに、ビルド システムは 100% NodeJS 主導であり、Windows エコシステムから独立しています。

4

2 に答える 2

0

静的ファイルがブラウザーにキャッシュされていない場合、またはハード リロードを行った場合、ユーザーは変更に気付くでしょう。実装方法にかかわらず、CDN(コンテンツ配信ネットワーク)を利用することをお勧めします。CDN エンドポイントをアプリ サービスに接続し、DNS がアプリ サービスではなく CDN を指すようにします。CDN は、アプリ サービス自体ではなく、静的ファイルをエンド ユーザーに提供します。CDN は最後にデプロイされたファイルをキャッシュし、削除するまでエンド ユーザーに提供し続けます。したがって、アプリ サービスへのデプロイを続けることができ、エンド ユーザーはアプリ サービスではなく CDN を介してサイトにアクセスしているため、デプロイによってまったく影響を受けません。デプロイが安定したら、CDN を削除すると、最新のコードがアプリ サービスから CDN に再度キャッシュされます。

コードのデプロイに関する質問に答えるには、使用する CI/CD システムに関係なく、azure CLI からの FTP デプロイが方法の 1 つになる可能性があります。詳細はこちら ただし、WebDeploy は、アプリ サービスにデプロイする場合の最も標準的な方法です。

于 2019-06-22T18:03:50.573 に答える