【问题标题】:Azure Functions - Host.json not applying to Azure Application SettingsAzure Functions - Host.json 不适用于 Azure 应用程序设置
【发布时间】:2020-11-17 16:44:43
【问题描述】:

我在这里完全不知所措。我刚刚配置了一个新的 Azure Function 应用并创建了以下 host.json 文件:

{
  "version": "2.0",
  "logging": {
    "applicationInsights": {
      "samplingExcludedTypes": "Request",
      "samplingSettings": {
        "isEnabled": true
      }
    }
  },
  "Values": {
    "BaseUrl": "https://test.test.com",
    "GrantType": "test",
    "ClientId": "test",
    "ClientSecret": "1234"
  }
}

由于某种原因,“值”下的设置不适用于 Azure 门户。当我查看功能设置时,这些值均未显示在“应用程序设置”下,我需要手动添加它们以允许工作流运行。我做了一些研究,似乎表明这是预期的结果? IE:我应该在 Azure 上配置这些值?

我在 .NET Core 3.1 上使用最新版本的 Azure Functions

【问题讨论】:

  • host.json != settings.json => 如果你想要设置你应该使用 settings.json 看到documentation
  • azure 函数应用程序设置取自环境变量,而 env var 存储在 azure 中的不同位置。在本地,env var 存储在 local.settings.json 中,但在 azure 上,它存储在 configuraion 设置中。

标签: c# azure .net-core azure-functions


【解决方案1】:

您似乎想为您的函数应用设置一些设置。

在本地,设置存储在 local.settings.json 中。但是,当您将函数应用部署到 azure 时,不会上传 local.settings.json。在 azure 上,env 变量取自配置设置,而不是 local.settings.json。

在传送门上,如果你想获取环境变量,你应该把它们保存在这个地方,不要忘记保存:

【讨论】:

  • 这是唯一的设置方法吗?我不能在配置文件中定义它并让 Azure 从中填充吗?
  • @AdamCreed 正常情况下,我们使用我在答案中提到的方法来保存azure函数的设置。
  • @AdamCreed 我没有找到设置环境变量的方法。官方文档只是给出了 get env 方法。所以我认为如果你在谈论内置方法,那么这是存储 env var 的唯一方法。
【解决方案2】:

如果您从 Visual Studio 发布您的应用程序,那么一旦您单击发布,您将看到管理应用程序设置选项,您可以在此处提供设置,并将其保存在您的 Azure 函数配置文件中。这将是一个一次性的过程,除非您更改设置。

另一种选择是您可以使用 Azure Pipelines 来部署您的函数应用,然后您可以将这些值作为变量传递给管道

【讨论】:

  • 这些方法最终将设置传递给 azure 上的配置设置。它们基本相同。
  • @BowmanZhu,我同意你的观点 :) 使用我提到的选项,我们不需要与 Azure 进行显式交互。
猜你喜欢
  • 2022-11-15
  • 1970-01-01
  • 2023-04-08
  • 1970-01-01
  • 2020-05-13
  • 2022-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多