在创建 blob 时执行 Azure 函数

已完成

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

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

什么是 Azure 存储?

Azure 存储是 Microsoft 的云存储解决方案,支持所有类型的数据,包括:Blob、队列和 NoSQL。 Azure 存储的目标是提供以下数据存储:

  • 高度可用
  • 安全
  • 可缩放
  • 托管

我们不会过多介绍 Azure 存储。 相反,我们用它来创建将触发函数运行的 Blob。

什么是 Azure Blob 存储?

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

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

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

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

什么是 Blob 触发器?

blob 触发器是在 Azure Blob 存储中上传或更新文件时执行函数的触发器。 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 门户中的“路径”值来设置要监控的位置。