在 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. 选择“转到资源”,查看新的函数应用。 还可选择“固定到仪表板”。 固定可以更轻松地从仪表板返回此函数应用资源。

    Screenshot of deployment notification.

已成功创建新的函数应用。

Function app successfully created.

接下来,在新的 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. 在函数的“概览”页上,选择资源组。

    Select your Azure portal resource group.

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

    Access the storage account.

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

    Add container to your storage account in the Azure portal.

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

    Name the storage container.

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

测试函数

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

    Expand the log in the Azure portal.

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

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

    Go to your samples-workitems container in the Azure portal.

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

    Upload a file to the blob container.

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

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

    View message in the logs.

    注意

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

清理资源

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

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

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

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

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

    Screenshot that shows select the resource group to delete from the function app page.

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

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

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

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

后续步骤

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

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