2

Azureクラウドサービスワーカーの役割としてデプロイするNode.jsアプリを構築しています。

良い習慣として、私はすべての機密情報(APIキーなど)をリポジトリから除外するのが好きです。これに対する私の通常の解決策は、環境変数として機密情報を追加し、アプリにそれらにアクセスさせることです。

(比較的新しい)Azure Webサイトでは、これは[構成]タブの[アプリの設定]セクションから簡単に実行できます。新しい設定を追加し、Node.jsで。を使用してそれらを取得しますprocess.env.<setting key>。これらの設定は、更新と展開の間で保持されます。

ただし、Azureクラウドサービスでは、これは当てはまらないようです。「構成設定」を追加しましたServiceConfiguration.Cloud.cscfg

<ConfigurationSettings>
  <Setting name="API_KEY_1" value="" />
  <Setting name="API_KEY_2" value="" />
</ConfigurationSettings>

...そして私のServiceDefinition.csdef

<ConfigurationSettings>
  <Setting name="API_KEY_1" />
  <Setting name="API_KEY_2" />
</ConfigurationSettings>

デプロイすると、これらの設定はWebポータルから編集可能になり、値を追加しました。

ただし、再デプロイすると、設定が上書きされます。適切な値を維持するために私が見ることができる唯一の方法は、値をに追加することです.cscfg。しかし、それはこの情報を私のリポジトリにコミットすることを意味します。

私が見逃している解決策はありますか?

4

1 に答える 1

3

一般的なアプローチこれを使用して設定をストレージアカウントに入れ、ストレージアカウントを対象とするcscfg設定を行います。起動時に、ストレージアカウントから値を読み取り、必要な方法でローカルに保持できます。

それはさておき、cscfgファイルを引き続き使用する場合は、そのファイルの複数のコピーを保持して、正しいバージョンでデプロイすることができます。

于 2012-09-12T19:56:48.943 に答える