当前位置: 首页 > 知识库问答 >
问题:

Azure函数存储容器Blob触发器

端木渝
2023-03-14

Azure函数存储帐户Blob容器触发器

在我们的一个用例中,我正在为具有以下条件的存储帐户容器中的任何活动寻找Azure函数触发器

    < li >具有特定命名约定的容器(名称如xxxx-input) < li >它应该自动检测是否创建了新的容器(具有特定的命名约定) < li>

共有2个答案

席俊驰
2023-03-14

您应该使用Azure事件网格订阅您的存储帐户的资源组,并使用例如高级过滤

"operationName":"Microsoft.Storage/storageAccounts/blobServices/containers/write",
"subject":"/subscriptions/<yourId>/resourcegroups/<yourRG>/providers/Microsoft.Storage/storageAccounts/<youraccount>/blobServices/default/containers/xxxx-input",
"eventType":"Microsoft.Resources.ResourceWriteSuccess",
许子平
2023-03-14

根据文档,目前支持以下事件:

  • 斑点创建
  • 斑点删除
  • 已重命名
  • 目录创建(数据湖Gen2)
  • 目录重命名(数据湖Gen2)
  • 目录删除(数据湖Gen2)

这意味着不可能创建这样的事件,但您可以尝试将方法(如果对您的用例可行)从“推”更改为“拉”。

我建议编写一个时间触发函数来检查是否创建了具有给定方案的容器。您可以利用Blob Storage v12 SDK来完成此任务,并获取容器列表。将列表保存到某个数据库(例如CosmosDB),每次触发函数时,您都可以将当前状态与数据库中最后保存的状态进行比较。如果有差异,您可以将消息推送到EventHub,这会触发另一个函数,该函数实际上会对此“新事件类型”做出反应。

 类似资料:
  • 我使用blob触发器读取blob内容,作为pandas DF进行处理,并将blob附加到我使用的Azure SQL server。 blob触发器没有按预期工作,因此我将main函数中的所有代码都定义为: 但是,我得到了以下错误: 有人可以帮助我找到此问题的原因吗? function.json的配置如下:

  • 如果你使用blob存储触发器阅读Azure WebJobs上的留档,它们会提到这不是很可靠: WebJobs SDK扫描日志文件以查看新的或更改的blob。这个过程不是实时的;在创建blob后的几分钟或更长时间内,函数可能不会被触发。此外,存储日志是在“尽力而为”的基础上创建的;无法保证所有事件都将被捕获。在某些情况下,日志可能会丢失。如果您的应用程序无法接受blob触发器的速度和可靠性限制,建议

  • 我是Azure Function应用程序中blob触发器的新手,需要一些帮助。我正在努力寻找有关如何重命名触发该函数的blob的资源。 我有一个函数应用程序,当一个新的blob被上传到容器时触发,文件被处理,我需要一种方法来将其“标记”为已处理,因此我想重命名blob。 这是我的职责: 我该如何重命名该文件?在这种情况下有可能吗?

  • 您好,我正在创建一个新的blob触发的azure函数,我想了解函数头中“Connection=”参数的作用: 我所做的是完全删除该参数,在我将其部署到我的azure订阅后,它就可以正常工作了。因此,我想知道如果我没有使用连接参数指定任何特定帐户,该函数如何确定要使用哪个存储帐户。 这就是我部署函数的方式:

  • 我正在处理一个Azure存储项目,其中我需要在容器中上传和下载blob,并在列表框中列出容器和blob。我无法在我的列表框中显示容器和blob。 最后是我调用上传、下载和列表方法的接口背后的代码:

  • 我遇到的情况是,Blob可能在第一次处理时失败,但可能在后续执行中工作。 我遇到的问题是关于监控真正的失败,目前第一次失败将抛出一个异常,该异常被记录并发出警报,但如果第一次重试成功完成,那么根据早期警报就没有什么可做的了。 是否有办法查看已发生的重试次数,以便我只能在不再重试时发出警报?