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

时间:2018-02-08 06:14:42

标签: azure azure-functions azure-webjobs azure-app-service-plans

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

谢谢,

PR

3 个答案:

答案 0 :(得分:1)

如果您要分享App服务计划,您可以像evilSnobu所说的那样运作。

  

在我现有的App Service中设置Azure功能

如果您要创建Azure功能以获取触发器,我建议您可以在Web App中使用WebJobs ,以便在将新邮件写入Azure队列时触发。

WebJobs是Azure App Service的一项功能,使您可以在与Web应用程序相同的上下文中运行程序或脚本。 使用WebJobs无需额外费用。

当新邮件写入“logqueue”时,您可以使用以下代码来获取触发器。

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

有关详细信息,请参阅此article

答案 1 :(得分:0)

从您的应用服务计划的角度来看,您的功能应用程序与Web应用程序非常相似,因此您确实可以共享该计划。只需从下拉列表中选择它。

Create Function App blade

答案 2 :(得分:0)

如果您已经拥有一个AppServicePlan,则可以按照以下两个步骤进行操作:

  1. 转到Azure门户并使用UI向导创建新的 FuncApp ,在 Basic 标签中,仅选择资源组和现有AppServicePlan所在的区域。 create new FuncApp(Basic tab)。 在“托管”标签中,选择计划类型=应用服务计划,然后选择您现有的计划。 create new FuncApp(Hosting tab)
  2. 转到Azure门户-> App Service计划->选择现有的AppServicePlan->设置-> Apps->选择新创建的功能App->功能->添加

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