在这篇文章中,我们将学习如何从Azure的队列存储中触发Function Apps。Function Apps一直是微软Azure最受欢迎的云服务之一。Function Apps允许用户用任何语言编写代码,然后在云中执行代码。没有任何基础设施需要管理,因此对于在旅途中编写和构建应用程序来说是非常灵活的。每个函数应用都可以通过多种方式触发,例如,通过使用HTTP端点或从Azure中的一些其他函数调用函数URL。在本文中,我们将从Azure中的队列存储中触发Function App,并看看如何从队列中传递消息给Function App。
Azure中的队列存储是Azure中的另一项服务,允许用户在其中存储多个消息。用户可以使用队列来创建一个需要逐一处理的项目列表。可以通过使用HTTP或HTTPS端点向Azure中的队列存储添加消息。通常情况下,一个队列可以存储64KB大小的数据。如果存储账户支持,我们可以在一个队列中添加数百万条消息。
前提条件
为了开始学习这篇文章,要求你有一个有效的Azure账户和一个与之相关的存储账户。如果你没有存储账户,你仍然可以继续创建一个,然后再继续本文的内容。
创建功能应用程序
导航到Azure门户,在搜索栏中搜索Function App。新的功能页面将出现在屏幕上。单击 "创建"来创建和配置一个新的功能。创建函数应用的刀片会出现在右边。这里需要配置多个标签。让我们先从基本要素标签开始。

图1 - 配置Azure Function App
正如你在上图中看到的,你可以使用以下细节来配置你的Azure Function App。
- 订阅- 这是要创建Function App的订阅名称。通常情况下,它是用于计费的。
- 资源 组- 资源组用于对属于特定应用程序的资源进行逻辑分组。它可以是多个服务的集合,以实现相同的目标。
- 功能 应用 名称- 你想要创建的功能应用的名称。你可以在这里为该功能选择任何逻辑名称
- 发布- 这个选项允许你选择如何发布你的应用程序。你可以选择以代码或Docker容器的形式发布
- 运行 时栈- 这是最重要的选项之一,可以选择。选择一个你熟悉的合适的运行时。你可以从多种运行时中选择,然而,在本教程中,我将选择.NET。
- 版本- 你所选择的运行时的最新版本。对于.NET,它是3.1。
- 区域- 这是你要创建Function App的区域。理想情况下,你应该选择更接近你或你的用户所在的区域。
一旦这些细节配置完毕,点击下一步进入下一个标签。托管。

图2 - 配置功能应用
在这个标签中,你可以配置以下细节。
- 存储 账户- 这是你要与Function App关联的存储账户。你可以保留默认名称,也可以添加你自己的存储账户名称。它应该在3到24个字符之间,只包含数字和小写字母。
- 操作系统- 由于我们选择了.NET作为我们的运行时栈,默认情况下,操作系统将被选择为Windows。
- 计划- 这是定义你的Function App如何计费的主机计划。我将会选择无服务器模式,因为在这个计划中,我们只为Function App的运行时间付费。
配置好这些细节后,你可以点击下一步进入下一个标签。在这个选项卡中,我们将为应用程序洞察力选择"否",以使事情更简单。最后,点击 "审查+创建",按照配置审查和创建功能应用。功能应用程序的部署可能需要一些时间。一旦应用程序被部署,你可以点击"转到资源"并查看它。
图3 - 部署功能应用
创建队列触发的功能
一旦功能应用被创建和部署,下一步就是在功能应用下创建队列触发功能。点击左侧窗格中的函数 ,然后点击添加来创建一个新函数。出现 "添加功能"刀片。

图4 - 添加队列触发的功能
选择Azure队列存储触发器作为模板,并提供以下细节。
- 新函数- 要创建的新触发函数的名称
- 队列名称- 将用于触发此功能的队列的名称
- 存储账户连接- 在这一步,你可以使用功能应用所使用的存储账户,也可以创建一个新的账户。

图5 - 创建触发的功能
完成后点击添加。该功能将被创建。
创建队列
现在函数已经创建,让我们继续创建队列,从那里可以触发函数。导航到资源组,在该组中已经创建了你的功能应用。一旦进入资源组页面,搜索已经为该功能应用程序创建的存储账户。
图 6 - 功能应用程序的资源组
打开存储账户,点击左侧窗格中的队列,点击**+队列**来创建一个新队列。
图7 - 创建队列
提供队列名称与上一步创建功能时提供的相同。完成后点击确定。这将创建队列并使其可以使用。你可以通过向队列发布消息来触发这个功能。
由于队列现在已经建立并运行,我们可以通过向队列发布一条消息来测试它。打开已经创建的队列,点击添加消息。
图8 - 向队列中添加消息
向队列中添加一个可以被Function消耗的消息。完成后点击确定。
图9 - 触发了队列功能
正如你在上图中看到的,该函数已经被队列触发了。一旦消息被发布,该函数就被执行,结果被打印在控制台。这是一个非常简单的从队列中消耗消息的例子。现在你可以加强该函数的代码,并应用一些处理逻辑,根据你的需要执行操作。
总结
在这篇文章中,我们看到了如何在Azure中使用队列存储来触发一个函数应用。这是触发函数应用的方法之一。除此以外,我们还可以通过向Function App端点发出HTTP请求来触发Function App。Azure中的队列存储提供了一个队列,我们可以向其中添加数百万条信息。这些消息可以被Function App一个一个地处理。在现实生活中,有很多用例都是由Azure中的队列存储触发Function App,这就是事件驱动架构的设计方式。




