.NET 7中的Azure函数(独立)已发布到Azure,已加载0个函数

yxyvkwin  于 2022-12-14  发布在  .NET
关注(0)|答案(1)|浏览(144)

我正在尝试使用GitHub操作工作流将一个Azure函数(隔离的)部署到MS Azure。一切似乎都运行良好,但由于某种原因,当我将其部署到云中时,函数没有加载。当我在本地主机上运行函数时,一切都很好(在我的机器上工作),一旦部署就不行了。

public class DemoFunction
{
    private readonly ILogger _logger;

    public DemoFunction(ILoggerFactory loggerFactory)
    {
        _logger = loggerFactory.CreateLogger<DemoFunction>();
    }

    [Function("DemoFunction")]
    public HttpResponseData Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post")] HttpRequestData req)
    {
        var response = req.CreateResponse(HttpStatusCode.OK);
        response.Headers.Add("Content-Type", "text/plain; charset=utf-8");
        response.WriteString("Demo function works!");

        return response;
    }
}

函数应用程序只包含一个具有HTTP绑定的函数(不允许身份验证和匿名请求)。我使用Bicep部署infra,使用GH Actions部署函数应用程序。日志分析显示如下:

因此,出于某种原因,它确实找到了函数,但没有加载它。如果我导航到Azure门户中的Functions刀片,我没有看到任何函数。该项目只是一个POC项目,托管在https://github.com/nikneem/function-deployment-with-gh-actions
有什么想法吗?

cs7cruho

cs7cruho1#

根据本文档中的注解:
若要能够将隔离函数项目发布到Azure中的Windows或Linux函数应用程序,必须在远程FUNCTIONS_WORKER_RUNTIME应用程序设置中设置dotnet-isolated值。若要支持zip部署和从Linux上的部署包运行,还需要将linuxFxVersion站点配置设置更新为DOTNET-ISOLATED| 7.0。要了解更多信息,请参阅Linux上的手动版本更新。
我可以看到,除了linuxFxVersion之外,相关的配置设置似乎在基础架构模板中设置正确-似乎在任何地方都没有提到这一点,而且cicd工作流似乎确实在执行zip部署。

相关问题