【问题标题】:Azure Function - Adding different settings file for different environment in Visual Studio 2017Azure 函数 - 在 Visual Studio 2017 中为不同环境添加不同的设置文件
【发布时间】:2019-08-18 14:40:35
【问题描述】:

我使用 Visual Studio 2017 创建了一个 Azure 函数,它使用 local.settings.json 文件来存储数据库连接字符串,该字符串适用于我的测试环境。

现在我需要为暂存环境添加数据库连接字符串。如何创建一个单独的 staging.settings.json 文件并将其与我在 Visual Studio 中的暂存版本相关联,以便在暂存部署期间采用 staging.settings.json 文件的设置?

我创建了一个staging.settings.json 并从local.settings.json 复制了设置文件:

{
  "IsEncrypted": false,
  "Values": {
    "sql_conn": "Server=tcp:SERVER,1433;Initial Catalog=DBNAME;Persist Security Info=False;User ID=;Password=;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;",
   }
}

【问题讨论】:

  • 您应该为每个环境拥有单独的 azure 功能,并通过 azure 门户分配相应的设置。

标签: c# visual-studio azure azure-functions


【解决方案1】:

暂存函数托管在 Azure 中,local.settings.json 文件不会上传到 Azure。仅供本地开发者使用。

在 Azure 门户中,您的 pro Function 和 staging Function 具有不同的应用程序设置页面,因此您可以直接设置您的值。

当我们使用 VS 发布函数时,有一个 friendly dialog 来更新应用程序设置。您还可以在那里配置连接字符串。远程设置将上传到 Azure。

【讨论】:

    【解决方案2】:

    local.setting.json 是仅用于本地开发的文件。此文件未部署到 Azure:设置是在云中运行时从环境中获取的。

    因此,如果您有 beta/production Function App,您将在 App Service Settings 中配置它们的设置。

    在我看来,最好的方法是进行基于 ARM 模板的部署,其中您将拥有两个文件。

    • 包含泛型变量的 azure 函数的 ARM 模板文件
    • 模板参数文件将具有模板中声明的变量的实际值

    对于每个环境,您都将拥有单独的功能,并且一旦您为该功能运行构建,它将替换现有设置。

    希望对你有帮助。

    【讨论】:

    • 从模板参数文件提供键:值对数组以配置 Azure Function 应用程序设置的正确方法是什么?我的目标是: - function-app.parameters-dev.json - function-app.parameters-prod.json
    【解决方案3】:

    在这里查看我的回复:https://stackoverflow.com/a/57944352/3563013 基本上,创建其他任务以复制到 local.settings.json

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-26
      • 1970-01-01
      • 2018-08-25
      • 2021-03-10
      • 2015-06-02
      • 2019-02-28
      • 2020-04-01
      • 1970-01-01
      相关资源
      最近更新 更多