现有Azure应用程序服务上的Azure功能

现有Azure应用程序服务上的Azure功能,azure,azure-functions,azure-webjobs,azure-app-service-plans,Azure,Azure Functions,Azure Webjobs,Azure App Service Plans,我有一个现有的ASP.Net Core 2.0 Web应用程序运行在Azure中的应用程序服务上。我需要创建一个Azure函数,当新消息写入Azure队列时触发该函数。是否可以在我现有的应用程序服务中设置Azure功能,或者我是否需要创建一个全新的基于Azure功能的应用程序服务?我在Azure门户上看不到任何向现有应用程序服务添加功能的选项。显然,我想这样做是为了将Azure资源和成本降至最低 谢谢 PR从你的应用服务计划的角度来看,你的功能应用非常类似于一个Web应用,因此你确实可以分享这个

我有一个现有的ASP.Net Core 2.0 Web应用程序运行在Azure中的应用程序服务上。我需要创建一个Azure函数,当新消息写入Azure队列时触发该函数。是否可以在我现有的应用程序服务中设置Azure功能,或者我是否需要创建一个全新的基于Azure功能的应用程序服务?我在Azure门户上看不到任何向现有应用程序服务添加功能的选项。显然,我想这样做是为了将Azure资源和成本降至最低

谢谢


PR

从你的应用服务计划的角度来看,你的功能应用非常类似于一个Web应用,因此你确实可以分享这个计划。从下拉列表中选择它


如果你愿意分享应用服务计划,你可以按照evilSnobu所说的操作

在我的现有应用程序服务中设置Azure功能

如果您要创建Azure函数以获取触发器,我建议您可以在Web应用程序中使用WebJobs在新消息写入Azure队列时获取触发器

是Azure应用程序服务的一项功能,允许您在与web应用程序相同的上下文中运行程序或脚本使用WebJobs不需要额外费用。

当新消息写入“logqueue”时,您可以使用以下代码获取触发器

public static void ProcessQueueMessage([QueueTrigger("logqueue")] string logMessage, TextWriter logger)
{
    logger.WriteLine(logMessage);
}

有关更多详细信息,请阅读。

如果您已经有一个现有的AppServicePlan,则可以通过以下两个步骤完成:

  • 转到azure门户并使用UI向导创建新的FuncApp,在Basic选项卡中选择资源组和现有AppServicePlan所在的区域。 . 在托管选项卡中,选择计划类型=应用程序服务计划,然后选择现有计划。
  • 转到azure门户->应用服务计划->选择现有的应用服务计划->设置->应用->选择新创建的功能应用->功能->添加

  • 注意:仅使用VS2019,我无法使用现有的AppServicePlan创建新函数,请认为VS2019函数向导存在一些错误

    我目前确实设置了它,其中我的应用程序服务计划在我的应用程序服务(ASP.Net Core WebApp)和函数应用程序之间共享。它只是创建了一个具有不同URL的单独功能应用程序等。因此,我只是尝试简化,看看我是否可以在1个应用程序(1个URL)中完成所有操作,减少维护/监控等。他问如何共享应用程序服务,而不是应用程序服务计划什么是“应用程序服务”?感谢链接。看来WebJobs可能是我更好的选择。我是否可以在与ASP.Net核心WebApp相同的项目/解决方案中创建WebJobs?目前,我正在使用带VSTS的持续集成功能构建/部署我的ASP.Net Core WebApp。您可以创建ASP.Net Core app,并将其旁边的WebJobs发布到azure。你可以参考这篇文章,我正在使用VisualStudioCodeforMac,新的CI功能正在从VSTS推送到Azure WebApp。我仍然可以将WebJob与我的webapp一起发布到Azure吗?