首页 > 解决方案 > 如何从 blob 存储触发 azure 函数中删除流参数

问题描述

我有一个blob触发功能。我实际上不需要此函数中的 blob 流(我只是从中获取一些元属性以将 URL 发送到 twilio)。我特别在考虑一些较大的 blob 文件,如果它知道不将流发送到触发器,这将有助于提高性能吗?我尝试删除希望进行一些动态绑定的参数。这不起作用,它只是将博客序列化为一个字符串并将其放入下一个参数 - blob 名称字符串。是否有任何其他配置可以根据需要进行这项工作?

更新:这是我的方法签名

 [FunctionName("OutboundFax")]
        public static void Run([BlobTrigger("faxdocuments/{name}", Connection = "faxdocumentsAppSetting")]Stream faxBlob, string name, ILogger log)
{}

标签: azureazure-functionsazure-blob-storage

解决方案


对于这个问题,有一个关于参数使用的描述:Usage

您可以对触发 blob 使用以下参数类型:

  • 溪流
  • 文本阅读器
  • 细绳
  • 字节[]
  • 可序列化为 JSON 的 POCO
  • iCloudBlob
  • 云块Blob
  • CloudPageBlob
  • CloudAppendBlob

所以几乎CloudBlockBlob是您想要的类型,您只需要注意需要安装存储 SDK tehn,您将能够使用 blob SDK 方法。

关于为什么 azure function default type is Stream,首先在这个用法中有一个描述:

最好使用 Stream 或CloudBlockBlob类型。有关详细信息,请参阅本文后面的并发和内存使用情况。

另一个原因可能是该Stream 类型更适用,因为它可能是其他blob类型,默认不需要安装SDK。


推荐阅读