发布 azure 函数并使用 appsettings.json

Obi*_*Eff 7 azure azure-functions

我有一个 Azure Functions 项目,我正在使用 Visual Studio 2017 15.3 预览版 7 用 C# 编写。该功能项目包含两个单独的函数,它们都是定时器触发的。我在 appsettings.json 文件中指定了许多 appsettings,该文件设置为在构建时复制到输出目录。

当我发布 Azure Functions 项目时,这两个函数会显示在 Azure 门户中,但是它们失败了,因为它们无权访问应用程序设置。现在我知道我可以在应用程序设置刀片中指定设置,但我想使用 appsettings.json 根据这个 github 问题应该是可能的:https : //github.com/Azure/azure-functions-cli/issues/ 33

这个 SO 答案包含一些关于让它工作Azure Functions 的信息 - 使用 appsettings.json。现在的问题在于“Azure 将尝试在 appsettings.json 文件中查找您正在处理的函数的根文件夹。” 我的函数项目目前包含以下文件结构:

-appsettings.json
-Function_function1.cs
-Function_function2.cs
-host.json
Run Code Online (Sandbox Code Playgroud)

当项目构建和部署时,我最终会为 wwwroot 中的每个函数创建一个文件夹,每个函数都包含一个 function.json 文件。appsettings.json 文件进入 wwwroot/bin 文件夹,功能无法访问它。

我想,也许如果我将函数项目更改为具有文件夹结构,它将部署 appsettings.json,我将其更改为以下内容

-host.json
-Function_function1\
--Function_function1.cs
--appsettings.json
-Function_function2\
--Function_function2.cs
--appsettings.json
Run Code Online (Sandbox Code Playgroud)

这没有得到我预期的结果,此时我不太确定我需要做什么才能将 appsettings 复制到 wwwroot 下的函数文件夹而不是 bin 文件夹,任何指导将不胜感激。

Jan*_*n_V 6

您所指的 SO 帖子包含已弃用的信息。将appsettings.json不再使用。

对于本地开发,您可以使用该local.settings.json文件,但在 Functions App 中不使用该文件。我刚刚完成了这个测试并验证了这个说法。

您可以--publish-local-settings在发布函数时使用该标志以获取函数应用中的设置。不过,这当然不是你想要的。

我自己也在寻找不涉及创建 ARM 模板的解决方案,但我觉得目前这是不可能的。您当然可以编写自己的 PowerShell 脚本并以这种方式设置应用程序设置,但这更糟。

可能不是您真正要寻找的答案,但它是最好的(目前)。