创建由 Azure 队列存储触发的函数

了解如何创建在将消息提交到 Azure 存储队列时触发的函数。

注意

仅 JavaScript、PowerShell、Python 和 C# 脚本函数支持门户内编辑。 仅当在消耗计划中运行并使用 Python v1 编程模型时,才支持 Python 门户内编辑。
目前,仅支持对在门户中创建或最后修改的函数进行门户内编辑。 从门户外部将代码部署到函数应用时,不能再在门户中编辑该函数应用的任何代码。 在这种情况下,只需继续使用本地开发。 对于已编译的 C# 函数、Java 函数和其他 Python 函数,可在门户中创建函数应用,但还必须在本地创建函数代码项目,然后将其发布到 Azure。

先决条件

  • Azure 订阅。 如果没有订阅,请在开始之前创建一个试用帐户

创建 Azure Function App

  1. 在 Azure 门户菜单上或在门户主页中,选择“创建资源”。

  2. “新建” 页面,选择 “计算”>“函数应用”

  3. 在“基本信息”页面上,按照下列所述使用函数应用设置:

    设置 建议值 描述
    订阅 你的订阅 将在其中创建新函数应用的订阅。
    资源组 myResourceGroup 将在其中创建函数应用的新资源组的名称。 你需要创建新的资源组,因为在现有资源组中创建新函数应用时存在已知限制
    函数应用名称 全局唯一名称 用于标识新 Function App 的名称。 有效字符为 a-z(不区分大小写)、0-9-
    发布 代码 用于发布代码文件或 Docker 容器的选项。
    运行时堆栈 首选语言 选择支持你喜欢的函数编程语言的运行时。 门户中编辑仅适用于 JavaScript、PowerShell、TypeScript 和 C# 脚本。 C# 类库、Java 和 Python 函数必须在本地开发
    版本 版本号 选择已安装的运行时的版本。
    区域 首选区域 选择与你靠近或者与函数可以访问的其他服务靠近的区域
  4. 选择“下一步: 托管”。 在“托管”页面上,输入以下设置:

    设置 建议值 说明
    存储帐户 全局唯一名称 创建函数应用使用的存储帐户。 存储帐户名称必须为 3 到 24 个字符,并且只能包含数字和小写字母。 也可使用现有帐户,但该帐户必须符合存储帐户要求
    操作系统 Windows 系统会根据你的运行时堆栈选择为你预先选择一个操作系统,但你可以根据需要更改该设置。 仅在 Windows 上支持门户内编辑。
    计划 消耗(无服务器) 定义如何将资源分配给 Function App 的托管计划。 在默认的消耗计划中,根据函数需求动态添加资源。 在此无服务器托管中,只需为函数运行时间付费。 按应用服务计划运行时,必须管理函数应用的缩放
  5. 选择“下一步: 监视”。 在“监视”页面上,输入以下设置:

    设置 建议值 说明
    Application Insights 默认 在最近的受支持的区域中,创建一个具有相同应用名称的 Application Insights 资源。 通过展开此设置或选择“新建”,可以更改 Application Insights 名称或在 Azure 地理位置中选择要存储数据的其他区域。
  6. 选择“查看 + 创建”,以便查看应用配置选择。

  7. 在“查看 + 创建”页上查看设置,然后选择“创建”来预配并部署函数应用 。

  8. 选择门户右上角的“通知”图标,留意是否显示了“部署成功”消息。

  9. 选择“转到资源”,查看新的函数应用。 还可选择“固定到仪表板”。 固定可以更轻松地从仪表板返回此函数应用资源。

    部署通知的屏幕快照。

接下来,在新的 Function App 中创建一个函数。

创建队列触发的函数

  1. 在函数应用中,选择“概述”,然后选择“函数”下的“+ 创建”

  2. 在“选择模板”下,向下滚动并选择“Azure 队列存储触发器”模板

  3. 在“模板详细信息”中,使用此表中指定的设置配置新触发器,然后选择“创建”

    设置 建议值 说明
    工作类型 追加到应用 你只会看到 Python v2 应用的此设置。
    Name 在 Function App 中唯一 此队列触发函数的名称。
    队列名称 myqueue-items 要连接到存储帐户中的队列的名称。
    存储帐户连接 AzureWebJobsStorage 可以使用 Function App 已在使用的存储帐户连接,也可以创建一个新的存储帐户连接。

    Azure 会基于提供的值创建队列存储触发的函数。 接下来,连接到 Azure 存储帐户并创建 myqueue-items 存储队列。

创建队列

  1. 返回到函数应用的“概述”页面,选择你的“资源组”,然后在资源组中查找并选择存储帐户

  2. 在存储帐户页面中,选择“数据存储”>“队列”>“+ 队列”

  3. 在“名称”字段中键入 myqueue-items,然后选择“创建”。

  4. 选择新的 myqueue-items 队列,可以通过向该队列添加消息来测试函数

测试函数

  1. 在新浏览器窗口中,返回到函数应用页面并选择“日志流”,它会显示应用的实时日志记录

  2. 在“myqueue-items”队列中,选择“添加消息”,在“消息文本”中键入“Hello World!”,然后选择“确定”

  3. 返回到函数应用日志,并验证该函数是否运行以处理队列中的消息。

  4. 返回到存储队列中,选择“刷新”,并验证该消息是否已处理且不再在队列中。

清理资源

本教程系列中的其他快速入门教程是在本文的基础上制作的。 如果打算使用后续的快速入门、教程或者在本快速入门中创建的任何服务,请勿清理这些资源。

Azure 中的资源是指函数应用、函数、存储帐户等。 这些资源可以组合到资源组中,删除该组即可删除组中的所有内容。

你已创建完成这些快速入门所需的资源。 这些资源可能需要付费,具体取决于帐户状态服务定价。 如果不再需要这些资源,请参阅下面介绍的资源删除方法:

  1. 在 Azure 门户中转到“资源组”页。

    若要从函数应用页转到该页,请选择“概览”选项卡,然后选择“资源组”下的链接。

    屏幕截图,显示如何从函数应用页选择要删除的资源组。

    若要从仪表板转到该页,请选择“资源组”,然后选择用于本文的资源组。

  2. 在“资源组”页中查看所包括的资源的列表,然后验证这些资源是否是要删除的。

  3. 选择“删除资源组”,然后按说明操作。

    删除操作可能需要几分钟。 完成后会显示一个通知,持续数秒。 也可以选择页面顶部的钟形图标来查看通知。

后续步骤

已创建将消息添加到存储队列时运行的函数。 有关队列存储触发器的详细信息,请参阅 Azure Functions 存储队列绑定

创建第一个函数以后,即可向这个可以将消息写回另一队列的函数添加输出绑定。