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

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

注意

仅 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 中创建一个函数。

创建 Azure Blob 存储触发的函数

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

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

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

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

    Azure 会基于提供的值创建 Blob 存储触发的函数。

接下来,创建“samples-workitems”容器。

创建容器

  1. 在函数的“概览”页上,选择资源组。

    选择 Azure 门户资源组。

  2. 查找并选择资源组的存储帐户。

    访问存储帐户。

  3. 选择“容器”,然后选择“+容器”。

    将容器添加到 Azure 门户中的存储帐户。

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

    命名存储容器。

现在已有 blob 容器,可以通过将文件上传到该容器来测试函数。

测试函数

  1. 返回到 Azure 门户中,浏览到函数,展开页面底部的“日志”并确保日志流式处理未暂停。

    在 Azure 门户中展开日志。

  2. 在单独的浏览器窗口中,转到 Azure 门户中的资源组,然后选择存储帐户。

  3. 选择“容器”,然后选择“samples-workitems”容器。

    转到 Azure 门户中的 samples-workitems 容器。

  4. 选择“上传”,然后选择文件夹图标以选择要上传的文件。

    将文件上传到 blob 容器。

  5. 浏览到本地计算机上的文件(如图像文件),选择该文件。 选择“打开”,然后选择“上传” 。

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

    查看日志中的消息。

    注意

    当 Function App 在默认消耗计划中运行时,添加或更新 blob 与触发函数之间可能会有多达几分钟的延迟。 如果需要在 blob 触发的函数中降低延迟,请考虑在应用服务计划中运行 Function App。

清理资源

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

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

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

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

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

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

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

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

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

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

后续步骤

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

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