但是,Azure Functions学习者遇到一个问题对我来说似乎很奇怪。
我从Visual Studio 2017(手动)发布了(以调试方式)具有匿名身份验证级别的Azure Function应用。这仅使用实体框架核心进行简单的CRUD操作。 Azure Function的运行时版本为2。Postman进行了良好的测试。这只是其中一个功能的签名(它们都具有相同的Route,但每个CRUD操作具有不同的HTTP动词)
[FunctionName("DeleteProductFunction")]
public static async Task<HttpResponseMessage> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "delete", Route = "product")] HttpRequest req,
ILogger log)
问题:
一旦我使用Azure DevOps设置了CI / CD管道,一切就开始了。整个管道成功进行,并将新版本真正发布到Azure Function中。之后,回到邮递员进行测试,我收到所有API(CRUD)的404。
我做了什么:
在这里我搞砸了什么?我不知道!
任何意见,经验分享或对此的帮助都将受到高度赞赏。
答案 0 :(得分:0)
好吧..我找到了解决方案。基本上,在我的问题中已经暴露了这一点,而没有注意到:)
我搞砸了Build定义:我将Build,Archive和Publish Artifact作为Build定义中的任务。第一个将发布的文件输出到“ output_publish”文件夹中。默认情况下,下一个任务“存档”也被设置为该文件夹的“根文件夹或要存档的文件”。我遇到一个错误,即“找不到指定的路径”。为了(仅)避免该错误,我(不小心)选择了项目的Main文件夹,而不是“ publish_output”。这是有问题的!为什么?因为当所有内容都转至Azure时,“ function.json”正在按照此路径“ scriptFile”:“ ../ bin / MyFunctionApp.dll”查找“ dll”,但是此路径无效。
我该如何解决?
在Build定义中,我在项目主文件夹之后即“ project_folder / publish_output”之后添加了“ publish_output”。然后,上述dll路径已解决,我的功能现在可以正常工作。
希望这可能对其他人有所帮助。