2

Azure の Git 展開で次の展開目標を達成するにはどうすればよいですか?

  • ローカルで作業しているときに、偽のメモリ内データまたは (最終的には) 実際のデータの非運用スナップショットのいずれかを使用するように簡単に切り替える
  • 最初は偽のメモリ内データを使用し、最終的には実際のデータの非運用スナップショットに移行できるように、Azure のステージング環境にデプロイします。
  • 実際のデータを使用して本番環境にデプロイする

現在、Github とステージング ブランチを使用してステージング Azure Web サイトにデプロイしています。パブリック リポジトリにデプロイするため、web.config ファイルは git によって無視されます。(編集:web.configを無視すると実際にAzureで展開エラーが発生することを知りました)

どんな助け/提案も大歓迎です。

4

2 に答える 2

1

実際にはそれよりも単純なはずです。このページをご覧ください。基本的には、Azure portal でいくつかの AppSettings を設定して、リポジトリにコミットされている既定値をオーバーライドするという考え方です。

于 2013-03-30T23:57:10.500 に答える
0

さて...これが私が今私のために働くことです。

  • 偽のメモリ内データをローカルですばやく切り替えるには、コンパイル シンボルLOCALとプリプロセッサ ディレクティブを使用し#if LOCALます。

  • Azure にデプロイするときも同じコンパイル シンボルが機能するため、実際のデータベースに切り替える準備が整うまで、偽のデータに取り組むことができます。もっと簡単に切り替えたい場合は、アプリの設定を使用することもできます。

課題は、「シークレット」(接続文字列など) を含む web.config をローカルに保持し、Github に公開しないことでした。それを .gitignore に追加しましたが、web.config が見つからなかったため、Azure でデプロイが失敗し始めました。ftp 経由で wwwroot にコピーするだけでは役に立ちませんでした。Azure はリポジトリで web.config を探していました。

したがって、これを機能させるために、デフォルトの deploy.cmd を実行する前に、最初に wwwroot からリポジトリに Web.config をコピーすることで、デプロイ プロセスを「わずかに」変更しました。これは簡単でした - これはあなたがすることです:

  1. .deploymentリポジトリのルートに次のファイルを作成します。

    [構成] コマンド = deploy.my.cmd

  2. deploy.my.cmd次のスクリプトで作成します。

    xcopy %DEPLOYMENT_TARGET%\Web.config %DEPLOYMENT_SOURCE%\\ /Y

    deploy.cmd

これで、シークレットをローカルに含む web.config ができました。Git はこのファイルを無視します。FTP 経由で正しい web.config を Azure にアップロードしました。これは、デプロイするたびに使用されます。

于 2013-03-30T07:47:39.497 に答える