繁体   English   中英

在CI / CD之后找不到Azure功能API

[英]Azure Function APIs cannot be found after CI/CD

然而,Azure功能中的学习者遇到问题对我来说似乎很奇怪。

我(从Visual Studio 2017)(手动)发布(在调试模式下)具有匿名身份验证级别的Azure功能应用程序。这仅使用实体框架核心执行简单的CRUD操作。 Azure功能的运行时版本是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功能中。 之后,回到邮递员进行测试,我收到了404所有API(CRUD)。

我做了什么:

  • 我试图删除现有的发布配置文件,并使用Visual Studio 2017从头开始创建一个新配置文件。
  • 此外,为此创建了一个新的发布管道。
  • 我查看了应用程序服务编辑器中的功能(预览),看看实际上是否所有内容都在那里
  • 我在本地测试了应用程序,它运行正常

我在这里搞砸了什么? 我没有任何线索!

任何意见,经验分享或对此的帮助都非常感谢。

嗯..我找到了解决方案。 基本上,我已经在我的问题中暴露了这一点而没有注意到:)

我搞砸了Build定义:我有Build,Archive和Publish Artifact作为Build定义中的任务。 第一个将已发布的文件输出到“output_publish”文件夹中。 默认情况下,下一个任务“归档”也会设置为“根文件夹或要归档的文件”的此文件夹。 我遇到了“无法找到指定路径”的错误。 为了(仅)避免此错误,我(不小心)选择了我的项目的Main文件夹而不是“publish_output”。 这有问题! 为什么? 因为当所有内容都进入Azure时,“function.json”正在根据此路径“scriptFile”:“.. / bin / MyFunctionApp.dll”查找“dll”,但此路径无效。

我怎么解决这个问题?

在我的Build定义中,我在项目主文件夹之后添加了“publish_output”,即“project_folder / publish_output”。 然后,上面的DLL路径已解决,我的功能现在正常工作。

希望这可能对其他人有帮助..

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM