你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 Azure 中创建由 Blob 存储触发的函数

了解如何创建在文件上传到 Blob 存储容器时或在 Blob 存储容器中更新时触发的函数。

注意

仅 JavaScript、PowerShell 和 C# 脚本函数支持门户内编辑。 只有在消耗计划中运行时,才支持 Python 门户内编辑。 若要创建支持门户内编辑的 C# 脚本应用,必须选择支持进程内模型的运行时版本

如果可能,应在本地开发函数

若要详细了解在 Azure 门户中编辑函数代码的限制,请参阅 Azure 门户中的开发限制

先决条件

  • Azure 订阅。 如果还没有该订阅,可以在开始前创建一个免费帐户

创建 Azure Function App

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

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

  3. 在“选择托管选项”下,选择“消耗”>“选择”,以在默认“消耗”计划中创建应用。 在此无服务器托管选项中,只需为函数运行时间付费。 高级计划还提供动态缩放。 按应用服务计划运行时,必须管理函数应用的缩放

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

    设置 建议值 描述
    订阅 你的订阅 将在其中创建新函数应用的订阅。
    资源组 myResourceGroup 将在其中创建函数应用的新资源组的名称。 你需要创建新的资源组,因为在现有资源组中创建新函数应用时存在已知限制
    函数应用名称 全局唯一名称 用于标识新 Function App 的名称。 有效字符为 a-z(不区分大小写)、0-9-
    运行时堆栈 首选语言 选择支持你喜欢的函数编程语言的运行时。 门户中编辑仅适用于 JavaScript、PowerShell、Python、TypeScript 和 C# 脚本。
    若要创建支持门户内编辑的 C# 脚本应用,必须选择支持进程内模型的运行时版本
    C# 类库和 Java 函数必须在本地开发
    Version 版本号 选择已安装的运行时的版本。
    区域 首选区域 选择与你靠近或者与函数可以访问的其他服务靠近的区域
    操作系统 Windows 系统会根据你的运行时堆栈选择为你预先选择一个操作系统,但你可以根据需要更改该设置。 仅在 Windows 上支持门户内编辑。
  5. 接受剩余选项卡中的默认选项,包括在“存储”选项卡上创建新存储帐户和在“监视”选项卡上创建新的 Application Insights 实例的默认行为。还可选择使用现有的存储帐户或 Application Insights 实例。

  6. 选择“查看 + 创建”以审阅所选的应用配置,然后选择“创建”来预配和部署函数应用。

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

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

    部署通知的屏幕快照。

已成功创建新的函数应用。 接下来,在新的 Function App 中创建一个函数。

创建 Azure Blob 存储触发的函数

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

  2. 在“选择模板”下,选择“Blob 触发器”模板,然后选择“下一步”。

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

    设置 建议值 说明
    工作类型 追加到应用 你只会看到 Python v2 应用的此设置。
    新建函数 在 Function App 中唯一 此 Blob 触发函数的名称。
    路径 samples-workitems/{name} 所监视的 Blob 存储中的位置。 blob 的文件名将作为 name 参数传入绑定。
    存储帐户连接 AzureWebJobsStorage 可以使用 Function App 已在使用的存储帐户连接,也可以创建一个新的存储帐户连接。

    Azure 会基于提供的值创建 Blob 存储触发的函数。 接下来,创建“samples-workitems”容器。

创建容器

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

  2. 在“存储帐户”页中,选择“数据存储”>“容器”>“+ 容器”。

  3. 在“名称”字段中,键入 samples-workitems,然后选择“创建”以创建容器。

  4. 选择用于通过将文件上传到容器来测试函数的新建 samples-workitems 容器。

测试函数

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

  2. samples-workitems 容器页中,选择“上传”>“浏览文件”,浏览到本地计算机上的文件(例如图像文件),然后选择该文件。

  3. 选择“打开”,然后选择“上传” 。

  4. 返回到函数应用日志并验证是否已读取 blob。

    注意

    当 Function App 在默认消耗计划中运行时,添加或更新 blob 与触发函数之间可能会有多达几分钟的延迟。 如果在 Blob 触发函数中需要低延迟,请考虑使用以下其他 Blob 触发器选项之一。

清理资源

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

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

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

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

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

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

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

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

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

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

后续步骤

已创建在 Blob 存储中添加或更新 blob 时运行的函数。 有关 Blob 存储触发器的详细信息,请参阅 Azure Functions Blob 存储绑定

现在,你已创建了第一个函数,让我们向该函数添加输出绑定,以便将消息写入存储队列。