【问题标题】:Appsetting.json is not working with Azure function app after deployment部署后 Appsetting.json 无法与 Azure 函数应用一起使用
【发布时间】:2023-03-17 22:12:01
【问题描述】:

我们正在尝试使用 .NET 预编译库(没有 .NET 核心)和我们在 appsettings.json 文件中添加的所有应用程序配置来创建 azure 函数应用程序,该文件在本地运行良好。我们可以使用以下代码获取密钥的值

ConfigurationManager.AppSettings["keyName"]

但是,在使用 VS2017 部署之后,我们无法从 appsetting.json 文件中获取密钥的值,除非我们必须在 Azure 应用程序设置刀片中手动创建配置。

我们也尝试在 Web.config 中添加配置,但没有成功,Azure-Functions: Can you use web.config restrictions (e.g. IP restriction or basic Auth) 建议 Azure Function 应用不支持 web.config。

除了 Azure 应用程序设置刀片之外,存储 Azure 函数应用程序设置的最佳方式是什么?

【问题讨论】:

  • 您是否尝试将它们作为环境变量?设置在 Azure Functions 中作为环境变量提供。
  • 我相信环境变量用于从 Azure 应用程序设置刀片而不是从 appsettings.json 获取应用程序设置和连接字符串键的值。如果我错了,请纠正我。
  • 如果有用,请点赞,对更多有相同问题的社区有帮助。

标签: c# json azure azure-function-app-proxy


【解决方案1】:

在 VS 2017 Azure 函数项目中,使用文件 local.settings.json 存储应用程序设置、连接字符串和 Azure Functions Core Tools 的设置。我还可以重现您在使用 vs2017 发布项目时提到的问题(应用程序设置刀片中没有应用程序设置项)。

除了 Azure 应用程序设置刀片之外,存储 Azure 函数应用程序的应用程序设置的最佳方式是什么?

我们可以使用Azure Functions Core Tools 轻松做到这一点。它在我这边工作正常。

func azure functionapp publish azurefunctionname --publish-local-settings

以下是详细步骤:

1.创建一个带有VS2017 preview 2.0的Azure函数项目,并在local.setting.json文件中包含以下内容

{
    "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "xxxxxxxx",
    "AzureWebJobsDashboard": "xxxxxxx",
    "Message": "Hello world!"
  }
}

2.安装Azure Functions Core Tools

3.切换到Azure函数项目目录

4.在运行cmd之前需要azure登录

5.将本地设置发布到 Azure appsettings

5.从 Azure 门户检查。

更多关于Azure功能的开发和测试请参考official tutorials

【讨论】:

  • 感谢 Tom 的建议,我们正在使用 Azure Powershell 和 Cli 命令将模板和参数 json 文件中定义的本地设置发布到 Azure 应用程序刀片。
猜你喜欢
  • 2022-06-13
  • 2017-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-11
  • 1970-01-01
  • 1970-01-01
  • 2021-01-27
相关资源
最近更新 更多