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