【问题标题】:Azure Functions v2 - New .netcore Configuration and deploymentAzure Functions v2 - 新的 .netcore 配置和部署
【发布时间】:2019-03-13 03:01:32
【问题描述】:

现在我们可以使用来自 .NETCore 的极其灵活的配置引擎 - 我们可以这样做:

   private static IConfigurationRoot SetConfig(ExecutionContext executionContext)
    {
        return new ConfigurationBuilder()
           .SetBasePath(executionContext.FunctionAppDirectory)
           .AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
           .AddEnvironmentVariables()
           .Build();
    }

这很棒,因为它允许您将更复杂的配置数据放入配置文件中 - 例如

    {
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "<< removed >>",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet",
    "APPINSIGHTS_INSTRUMENTATIONKEY": "<< removed >>"
  },
  "MyCustomSettings": [
    {
      "ConnectionString": "<< removed >>",
      "Folders": [
        {
          "ShareName": "share1",
          "FolderName": "folder1"
        },
        {
          "ShareName": "share2",
          "FolderName": "folder2"
        }
      ]
    }
  ]
}

再次 - 好消息!我现在可以使用 config["MyCustomSettings"]

访问我的强类型配置

但我不明白 - 在发布函数时如何部署它。只有值部分迁移到 Azure 函数应用程序设置。我显然可以将此自定义 json 放在 json 文件中,并将其添加到 load 语句中,如 local.settings.json

.AddJsonFile("my-custom-settings.json", optional: false, reloadOnChange: true)

但是这个文件必须包含在部署中,并且没有安全存储。

有什么想法吗?

【问题讨论】:

    标签: azure configuration azure-functions


    【解决方案1】:

    截至 2019 年 11 月,此功能尚未得到官方支持。

    Warning

    避免尝试从消费计划中的 local.settings.json 或 appsettings.{environment}.json 等文件中读取值。从这些文件中读取的与触发连接相关的值在应用扩展时不可用,因为托管基础架构无法访问配置信息。

    有很多博客建议这样做,如果您只有一个实例,这似乎可行,但是一旦 ScaleController 触发缩放,新实例将无法找到配置文件.

    如果您有使用 %SettingName% 语法的触发器,它们将无法在函数缩放时工作。

    职能团队isconsideringpossibleOptions(哈哈)

    还可以选择使用新的 App Configuration 服务,但目前处于预览阶段,并非在所有 Azure 区域都可用。

    将配置放入 blob 存储并在启动时加载可能更简单? (您的 Blob 存储连接字符串需要在 env 变量中)

    到目前为止,我们可以做的最好的是在 json 文件中包含您的“不那么秘密”设置(例如 MyThingTimeoutExternalEndpointAddress)并使用 .AddJsonFile(...) 并输入秘密在 KeyVault 中。这确实会迫使您拆分配置并决定将哪个配置放在哪里。 (并确保您的触发器仅从值部分/环境变量中读取)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-21
      • 1970-01-01
      • 2023-01-28
      • 1970-01-01
      • 2020-01-24
      • 1970-01-01
      • 2019-03-05
      • 1970-01-01
      相关资源
      最近更新 更多