在创建 blob 时执行 Azure 函数

已完成

假设你是一名摄影师,拥有一个可在其中展示当天照片的网站。 由于很忙,因此上传时间不定,但是你希望在上传图片时通知粉丝。 你决定创建 Azure 函数,每当上传图像到 Azure 存储 Blob 容器时,该函数便会自动发送推文。

在这里,你将了解如何创建 Blob 触发器并指示它监视 Azure 存储 Blob 容器中的特定位置。

什么是 Azure 存储?

Azure 存储是 Microsoft 的云存储解决方案,支持所有类型的数据,包括:Blob、队列和 NoSQL。 Azure 存储的目标是提供高度可用、安全、可缩放和管理的数据存储。

在本模块中,我们不会将注意力集中在 Azure 存储上。 相反,我们希望使用它来存储可以触发函数运行的数据块。

什么是 Azure Blob 存储?

Azure Blob 存储是一种对象存储解决方案,旨在存储大量的非结构化数据。

例如,Azure Blob 存储非常适合执行以下操作:

  • 存储文件
  • 提供文件
  • 对视频和音频进行流式处理
  • 记录数据

Blob 有三种类型:“块 Blob”、“追加 Blob”和“页 Blob”。 块 Blob 是最常见的类型。 借助它们可有效地存储文本或二进制数据。 追加 Blob 与块 Blob 类似,但它们更适用于追加操作,例如创建不断更新的日志文件。 最后,页 Blob 由页面组成,专为频繁的随机读写操作而设计。

什么是 Blob 触发器?

blob 触发器是在 Azure Blob 存储中上传或更新文件时执行函数的触发器。 Azure Functions 会定期检查存储容器是否有更改,这可能会导致一些延迟。 有一些方法可以减少在 blob 容器上触发时的延迟。

要创建 Blob 触发器,请创建 Azure 存储帐户并提供触发器监视的位置。

如何创建 Blob 触发器

就像我们到目前为止了解的其他触发器一样,可以在 Azure 门户中创建 Blob 触发器。 在 Azure 函数中,从预定义的触发器类型列表中选择“Blob 触发器”。 然后,输入在创建或更新 blob 时要执行的逻辑。

有必要了解的一项设置是“路径”。 Path 告知 blob 触发器要监视哪个 blob 容器,以了解是否已上传或更新 blob。 默认情况下,“路径”值为:

samples-workitems/{name}

让我们将此概念分解为两个部分:“samples-workitems”和“{name}”。 第一部分 (“samples-workitems”) 表示触发器监视的 Blob 容器。 第二部分 {name} 表示每种类型的文件都会导致触发器调用函数。 由于没有筛选器,因此调用函数。 例如,只有在使用如下语法添加 PNG 文件时,才能使触发器调用函数:

samples-workitems/{name}.png

此概念最后一条重要信息是文本 name。 name 表示 Azure 函数中接收添加的文件的名称的参数。 例如,如果上传名为 resume.txt 的文件,则 Azure 函数会通过名为 name 的参数将该值作为字符串接收。

如果 Blob 触发器在 Azure 存储 Blob 帐户中的特定位置看到活动,它就会调用 Azure 函数。 可以通过修改 Azure 门户中的“路径”值来设置要监控的位置。