【问题标题】:Azure Cloud Service and Persistent Configuration SettingsAzure 云服务和持久配置设置
【发布时间】:2012-09-13 03:56:48
【问题描述】:

我正在构建一个 Node.js 应用程序,以部署为 Azure 云服务辅助角色。

作为一种好的做法,我喜欢将所有敏感信息(API 密钥等)保留在我的存储库之外。我通常的解决方案是将敏感信息添加为环境变量,并让我的应用访问这些信息。

在(相对较新的)Azure 网站中,这可以通过“配置”选项卡的“应用程序设置”部分轻松完成。添加新设置并使用 process.env.<setting key> 在 Node.js 中获取它们。这些设置在更新和部署中保持不变。

但是,在 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。但这意味着将这些信息提交到我的仓库中。

有我缺少的解决方案吗?

【问题讨论】:

    标签: node.js configuration azure


    【解决方案1】:

    一般方法我会使用它将设置放入存储帐户,然后有一个针对存储帐户的 cscfg 设置。启动时,您可以从存储帐户中读取值,并以您需要的任何方式将它们保存在本地。

    除此之外,如果您希望继续使用 cscfg 文件,您可以保留该文件的多个副本并使用正确的版本进行部署。

    【讨论】:

    • 存储帐户访问密钥呢?您会将其保存在 cscfg 中,因此,保存在您的存储库中?
    • 是的。如果需要,您可以对其进行加密。我知道有些客户在存储库中存储任何生产凭据时遇到问题(如果开发人员可以看到的话)。在这种情况下,用于生产部署的 cscfg 的替代版本通常可以存储在其他地方(另一个权限有限的项目可以很好地工作)。
    猜你喜欢
    • 2014-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-15
    • 2015-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多