【问题标题】:Azure Function on Existing Azure App Service现有 Azure 应用服务上的 Azure 功能
【发布时间】:2018-02-08 06:14:42
【问题描述】:

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

谢谢,

公关

【问题讨论】:

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


    【解决方案1】:

    如果你愿意分享 App 服务计划,你可以按照 evilSnobu 说的那样操作。

    在我现有的应用服务中设置 Azure Functions

    如果您要创建一个 Azure Functions 来获取触发器,我建议您可以在您的 Web 应用程序中使用 WebJobs,以便在新消息写入 Azure 队列时触发。

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

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

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

    更多详情,您可以阅读article

    【讨论】:

    • 感谢您的链接。所以看起来 WebJobs 对我来说可能是一个更好的选择。我可以在与我的 ASP.Net Core WebApp 相同的项目/解决方案中创建 WebJobs 吗?目前我正在使用带有 VSTS 的持续集成功能来构建/部署我的 ASP.Net Core WebApp。
    • 您可以创建 asp.net 核心应用程序并将 WebJobs 与它一起发布到 azure。你可以参考这个link
    • 我正在使用 Visual Studio Code for Mac 以及从 VSTS 推送到 Azure WebApp 的新 CI 功能。我还能将 WebJob 与我的 web 应用一起发布到 Azure 吗?
    【解决方案2】:

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

    【讨论】:

    • 我目前确实设置了我的应用服务计划在我的应用服务(ASP.Net Core WebApp)和函数应用之间共享的位置。它只是最终创建了一个具有不同 URL 等的单独功能应用程序。所以我只是想简化一下,看看我是否可以在 1 个应用程序(1 个 url)中完成所有操作,减少维护/监控等事情。
    • 他问的是如何共享应用服务,而不是应用服务计划
    • 什么是“应用服务”?
    【解决方案3】:

    如果您已经有一个现有的 AppServicePlan,那么您可以通过以下 2 个步骤来完成:

    1. 转到 azure 门户并使用 UI 向导创建新的 FuncApp,在 Basic 选项卡中,只需选择现有 AppServicePlan 所在的资源组和区域。 create new FuncApp(Basic tab)。 在 Hosting 选项卡中选择 Plan Type = App service plan 并选择您现有的计划。 create new FuncApp(Hosting tab)
    2. 转到 azure 门户 -> 应用服务计划 -> 选择现有的 AppServicePlan -> 设置 -> 应用 -> 选择新创建的功能应用 -> 功能 -> 添加

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-30
      • 2018-02-19
      • 2019-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多