2011-09-29 21 views
6

Azure(9月ツールキット)でステージング環境とライブ環境をセットアップしようとしていて、異なる接続文字列を使用して別々のステージングとライブデータベースが必要です。明らかに、私はVisual Studioでweb.configの変換を行うことができますが、VIPスワップ中に接続文字列の変更を自動化する方法があります。ステージングサイトがステージングデータを指し、ライブサイトがデータをライブするようにします?私は2回展開する必要はありません。Azure VIPスワップ中に接続文字列を変更することは可能ですか?

答えて

9

貴殿がVIPスワップを行うときに役割が関係する限り、私は何も変わるとは思わない。ロードバランサの構成が変更されます。

アプリで何も起こらずに設定が変更されます。私が考えることができるのは、URLが2つの間で変化することだけです。アクセスされたURLに基​​づいて2つの接続文字列のいずれかを選択したコードを実装することができます(ただし、Webの役割についてしか話していないことを前提としています)。

基本的には、ステージングは​​別のテスト環境ではないということです。それは生産への足がかりです。したがって、Microsoftの設定は、構成が変更されないということです。

+1

はい、これはまさに私たちが見つけたものです。「ステージング」は、ここでは「ライブになる」ことを意味します。私たちは、テストのために異なるAzureサブスクリプションで完全に別個の環境を持っています。デプロイメントの後でVIPスワップが行われる前に、「ステージング」環境をスピンアップするだけで、web.configなどの単純なエラーがないことを確認するだけです。これにより、キャッシュにデータが格納され、正常に動作しているVM –

+0

Thx人。テストのための別の環境のように見えます。主にコストベースで、あまりにもそれをしないでください。 – Andiih

+0

+1最後の段落。ステージング領域は、「プロダクションスイッチ」を反転する前にアプリが正常に動作していることを確認するためにのみ使用してください。 –

15

管理APIとPowerShellコマンドレットを使用すると、大量のAzureプラットフォームを自動化できます。これには、VIPスイッチと接続文字列の変更の調整が含まれます。

これはアプローチです:

  1. は、あなたのサービス構成ファイルにデータベース接続文字列を追加します。
  2. あなたのロジックがAzureのサービスならば通知されるようにRoleEnvironmentChangingを実装RoleEnvironment.GetConfigurationSettingValueを使用して、Azureの具体的な設定ではなく、より一般的な.NETの設定ConfigurationManager.ConnectionStringsのAPI
  3. から接続文字列を読み取るためにアプリのロジックを変更します。構成が変化します。 RoleEnvironment.GetConfigurationSettingValueを使用して、ここでアプリケーションの接続文字列を更新するコードを追加します。あなたはVIPスイッチ(Windows Azure Platform PowerShell Cmdlets 2.0から移動-展開コマンドレットの周りに構築)を呼び出すPowerShellスクリプトを書くDB接続文字列に
  4. を「ステージング」のサービス構成設定でステージングへ
  5. 展開をし、設定変更を呼び出しますあなたの「生産」DB接続文字列を含む新しいサービス構成ファイルと一緒になって

、VIPスイッチを実行して、単一の自動化された操作で接続文字列の更新を実行しますステップ5(セットでDeploymentConfigurationを参照してください)。

+3

この回答には、より多くの票が必要です。 –

関連する問題