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

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

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

注意

仅 JavaScript、PowerShell 和 C# 脚本函数支持门户内编辑。 仅在消耗计划中运行时,才支持 Python 门户内编辑。 如果可能,应 在本地开发函数。

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

先决条件

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

创建 Azure Function App

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

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

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

    设置 建议值 描述
    订阅 你的订阅 将在其中创建新函数应用的订阅。
    资源组 myResourceGroup 将在其中创建函数应用的新资源组的名称。 你需要创建新的资源组,因为在现有资源组中创建新函数应用时存在已知限制
    函数应用名称 全局唯一名称 用于标识新 Function App 的名称。 有效字符为 a-z(不区分大小写)、0-9-
    是否要部署代码或容器映像? 代码 用于发布代码文件或 Docker 容器的选项。
    运行时堆栈 首选语言 选择支持你喜欢的函数编程语言的运行时。 门户中编辑仅适用于 JavaScript、PowerShell、Python、TypeScript 和 C# 脚本。 C# 类库和 Java 函数必须在本地开发
    Version 版本号 选择已安装的运行时的版本。
    区域 首选区域 选择与你靠近或者与函数可以访问的其他服务靠近的区域
    操作系统 Windows 系统会根据你的运行时堆栈选择为你预先选择一个操作系统,但你可以根据需要更改该设置。 仅在 Windows 上支持门户内编辑。 仅支持在 Linux 上发布容器。
    托管选项和计划 消耗(无服务器) 定义如何将资源分配给 Function App 的托管计划。 在默认的消耗计划中,根据函数需求动态添加资源。 在此无服务器托管中,只需为函数运行时间付费。 高级计划还提供动态缩放。 按应用服务计划运行时,必须管理函数应用的缩放
  4. 接受默认选项,即在“存储”选项卡上创建新存储帐户,在“监视”选项卡上创建新的 Application Insights 实例。还可以选择使用现有的存储帐户或 Application Insights 实例。

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

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

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

    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 存储绑定

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