MEMO

デプロイに関してGit pushとWeb Deploy型の比較

  • Git push型 ・極論VSいらない。 ・PubXmlいらない。 ・Azureリソース側にLocalGitを設定しとかないといけない。 ・そのままだとビルドはシンプルなmsbuildが走る。カスタムはできるらしい。ConfigurationはAppServiceの環境変数依存。 ・ソリューションに複数プロジェクトの場合、ビルドしたいcsprojはAppServiceの環境変数依存。 ・リモートビルドなので、ビルド失敗を検出するのが目検。
  • Web Deploy型 ・デプロイ環境にVSとnugetとWeb Deployがいる。 ・PubXmlがいる。 ・msbuildの引数のカスタマイズはこちらのがやりやすい。 ・ローカルビルドなので、ビルドのログ取ったりエラーハンドリングはしやすい。

Azure WebAppsの WarmUpに関して

Azureは一定期間のアクセスが無いと、その次のアクセス時に起動処理が実行されてしまう。 このため、定期的にアプリケーションを実行しておく必要がある。 定期的にアクセスするFunctionや、自動テストなどを用意して回避する。

SQL DB Server - FailoverGroup

  • フェイルオーバー構成を組んだが、正副切り替え後にアプリケーションが上手く切り替え後に接続できないという事象が発生した。

  • 原因 アプリケーション側で保持しているコネクションプールが消えないままになっており、何時まで経っても古い SQLDB へ接続を試みようとしていた。

  • 対応 以下2点のどちらかを実装する。 (1) アプリケーションに SQLDB への接続エラーが発生した後にコネクションプールを破棄するメソッドを呼ぶよう、実装を変更する (2) SQLDBの死活監視を行う仕組みを別途実装し、フェイルオーバーが発生したら AppService を再起動する (再起動により、コネクションプールを強制的に破棄する)

results matching ""

    No results matching ""