Web role の web.config を変更したいだけの場合。残りの Web ロールを変更したくありません。Web ロールを公開するたびに、VS2010 は Web ロールのすべてのファイルを azure にアップロードするようです。指定した Web ロールのファイルをクラウド サービスにアップロードすることはできますか? ありがとう
2 に答える
いいえ。これは、クラウド サービスでは不可能です。つまり、web.config を変更すると、ロール全体を再デプロイする必要があります。
そのため、.cscfg ファイル (クラウド サービス構成ファイル) を確認することが適切な場合があります。その場で(ロールの実行中に)何でも変更できます。もちろん、これは、種類の接続文字列へのすべての参照を変更する必要があるため (どこかで使用されている場合)、初期オーバーヘッドが追加されます<%$ ConnectionStrings:MyNorthwind%>
。ただし、プラットフォームに依存しないソース (web.config、クラウド サービス構成、または Azure テーブル ストレージなど) から読み取るようにすべての構成関連の設定を変更すると、非常に柔軟なアプリケーション デプロイ オプションが得られます。サービス構成でまだ変更できない唯一のものは、system.serviceModel
web.config のセクション。WCF の自動配線はそれに大きく依存しているためです。これは、WCF サービスを使用している場合のみです。ただし、WCF サービスでさえも動的に構成できます。
UPDATE(コメントの後)
これはサービスとしてのプラットフォームを提供するパブリック クラウドであるため、再デプロイする必要があります。これには、ハードウェア障害の自動「修復」、OS パッチ/更新、ランタイム (.net) 更新、無制限のスケーラビリティが含まれます。PaaS はステートレスです。ステートレスとは、システムの修復/再起動/障害/スケールアウト/スケールイン プロセス間で状態が保持されないことを意味します。システム用に準備したもの (.cspkg および .cscfg) は、何かが発生したとき (初期展開、修復展開など) にクラウド サービスを形作るための "ベース イメージ" として使用されます。
個人的には、再展開にそれほど時間がかかるとは思いません。たぶん、十分な規模の展開に直面していません。ただし、ベスト プラクティスとして、CSPKG/CSCFG を BLOB ストレージ コンテナーにアップロードし、そこからデプロイ/アップグレードします。"再デプロイ" する必要がある場合は、"自動アップグレード" を実行するだけで、あとは Azure プラットフォーム ファブリック (これは、サービスが稼働中であることを確認するインテリジェントなものです) が処理します。残りは、アップグレード ドメインごとに、インスタンスをロード バランサーから取り出し、パッケージを更新し、インスタンスをロード バランサー ローテーションに戻すなどです。
残念ながら、Azure では、パッケージをファイルごとに更新することはできません。パッケージ全体を再デプロイする必要があります。サイズが大きいパッケージを持っている場合、これは本当に苦痛です。私のソリューションは、通常、アップロードに約 45 分かかります。
私の提案は、Azure で仮想マシンを作成し、そこで Web サイトをホストすることです。エンドポイントとして http ポート 80 を開くことを忘れないでください。負荷分散されたマシンを計画している場合は、すべてのサーバーでファイルを複製する必要があります。仮想マシンはステートレス (Web ロール VM) ではなくステートフルであるため、設定とデータは保持されます。