在 Azure 中创建由 Blob 存储触发的函数
了解如何创建在文件上传到 Blob 存储容器时或在 Blob 存储容器中更新时触发的函数。
注意
仅 JavaScript、PowerShell、Python 和 C# 脚本函数支持门户内编辑。 仅当在消耗计划中运行并使用 Python v1 编程模型时,才支持 Python 门户内编辑。
目前,仅支持对在门户中创建或最后修改的函数进行门户内编辑。 从门户外部将代码部署到函数应用时,不能再在门户中编辑该函数应用的任何代码。 在这种情况下,只需继续使用本地开发。
对于已编译的 C# 函数、Java 函数和其他 Python 函数,可在门户中创建函数应用,但还必须在本地创建函数代码项目,然后将其发布到 Azure。
先决条件
- Azure 订阅。 如果没有订阅,请在开始之前创建一个试用帐户。
创建 Azure Function App
在 Azure 门户菜单上或在门户主页中,选择“创建资源”。
在 “新建” 页面,选择 “计算”>“函数应用” 。
在“基本信息”页面上,按照下列所述使用函数应用设置:
设置 建议值 描述 订阅 你的订阅 将在其中创建新函数应用的订阅。 资源组 myResourceGroup 将在其中创建函数应用的新资源组的名称。 你需要创建新的资源组,因为在现有资源组中创建新函数应用时存在已知限制。 函数应用名称 全局唯一名称 用于标识新 Function App 的名称。 有效字符为 a-z
(不区分大小写)、0-9
和-
。发布 代码 用于发布代码文件或 Docker 容器的选项。 运行时堆栈 首选语言 选择支持你喜欢的函数编程语言的运行时。 门户中编辑仅适用于 JavaScript、PowerShell、TypeScript 和 C# 脚本。 C# 类库、Java 和 Python 函数必须在本地开发。 版本 版本号 选择已安装的运行时的版本。 区域 首选区域 选择与你靠近或者与函数可以访问的其他服务靠近的区域。 选择“下一步: 托管”。 在“托管”页面上,输入以下设置:
设置 建议值 说明 存储帐户 全局唯一名称 创建函数应用使用的存储帐户。 存储帐户名称必须为 3 到 24 个字符,并且只能包含数字和小写字母。 也可使用现有帐户,但该帐户必须符合存储帐户要求。 操作系统 Windows 系统会根据你的运行时堆栈选择为你预先选择一个操作系统,但你可以根据需要更改该设置。 仅在 Windows 上支持门户内编辑。 计划 消耗(无服务器) 定义如何将资源分配给 Function App 的托管计划。 在默认的消耗计划中,根据函数需求动态添加资源。 在此无服务器托管中,只需为函数运行时间付费。 按应用服务计划运行时,必须管理函数应用的缩放。 选择“下一步: 监视”。 在“监视”页面上,输入以下设置:
设置 建议值 说明 Application Insights 默认 在最近的受支持的区域中,创建一个具有相同应用名称的 Application Insights 资源。 通过展开此设置或选择“新建”,可以更改 Application Insights 名称或在 Azure 地理位置中选择要存储数据的其他区域。 选择“查看 + 创建”,以便查看应用配置选择。
在“查看 + 创建”页上查看设置,然后选择“创建”来预配并部署函数应用 。
选择门户右上角的“通知”图标,留意是否显示了“部署成功”消息。
选择“转到资源”,查看新的函数应用。 还可选择“固定到仪表板”。 固定可以更轻松地从仪表板返回此函数应用资源。
已成功创建新的函数应用。
接下来,在新的 Function App 中创建一个函数。
创建 Azure Blob 存储触发的函数
在函数应用中,选择“概述”,然后在“函数”下 选择“+ 创建”。
在“选择模板”下,向下滚动并选择“Azure Blob 存储触发器”模板。
在“模板详细信息”中,使用此表中指定的设置来配置新触发器,然后选择“创建”:
设置 建议值 说明 新建函数 在 Function App 中唯一 此 Blob 触发函数的名称。 路径 samples-workitems/{name} 所监视的 Blob 存储中的位置。 blob 的文件名将作为 name 参数传入绑定。 存储帐户连接 AzureWebJobsStorage 可以使用 Function App 已在使用的存储帐户连接,也可以创建一个新的存储帐户连接。 Azure 会基于提供的值创建 Blob 存储触发的函数。
接下来,创建“samples-workitems”容器。
创建容器
在函数的“概览”页上,选择资源组。
查找并选择资源组的存储帐户。
选择“容器”,然后选择“+容器”。
在“名称”字段中键入
samples-workitems
,然后选择“创建”。
现在已有 blob 容器,可以通过将文件上传到该容器来测试函数。
测试函数
返回到 Azure 门户中,浏览到函数,展开页面底部的“日志”并确保日志流式处理未暂停。
在单独的浏览器窗口中,转到 Azure 门户中的资源组,然后选择存储帐户。
选择“容器”,然后选择“samples-workitems”容器。
选择“上传”,然后选择文件夹图标以选择要上传的文件。
浏览到本地计算机上的文件(如图像文件),选择该文件。 选择“打开”,然后选择“上传” 。
返回到函数日志并验证是否已读取 blob。
注意
当 Function App 在默认消耗计划中运行时,添加或更新 blob 与触发函数之间可能会有多达几分钟的延迟。 如果需要在 blob 触发的函数中降低延迟,请考虑在应用服务计划中运行 Function App。
清理资源
本教程系列中的其他快速入门教程是在本文的基础上制作的。 如果打算使用后续的快速入门、教程或者在本快速入门中创建的任何服务,请勿清理这些资源。
Azure 中的资源是指函数应用、函数、存储帐户等。 这些资源可以组合到资源组中,删除该组即可删除组中的所有内容。
你已创建完成这些快速入门所需的资源。 这些资源可能需要付费,具体取决于帐户状态和服务定价。 如果不再需要这些资源,请参阅下面介绍的资源删除方法:
在 Azure 门户中转到“资源组”页。
若要从函数应用页转到该页,请选择“概览”选项卡,然后选择“资源组”下的链接。
若要从仪表板转到该页,请选择“资源组”,然后选择用于本文的资源组。
在“资源组”页中查看所包括的资源的列表,然后验证这些资源是否是要删除的。
选择“删除资源组”,然后按说明操作。
删除操作可能需要几分钟。 完成后会显示一个通知,持续数秒。 也可以选择页面顶部的钟形图标来查看通知。
后续步骤
已创建在 Blob 存储中添加或更新 blob 时运行的函数。 有关 Blob 存储触发器的详细信息,请参阅 Azure Functions Blob 存储绑定。
现在,你已创建了第一个函数,让我们向该函数添加输出绑定,以便将消息写入存储队列。