【问题标题】:How can I remove the stream parameter from blob storage trigger azure function如何从 blob 存储触发 azure 函数中删除流参数
【发布时间】:2020-04-10 10:01:54
【问题描述】:

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

更新:这是我的方法签名

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

【问题讨论】:

  • 公共静态异步任务运行(CloudBlockBlob myBlob,字符串名称,ILogger 日志)
  • 谢谢罗曼!不知道为什么 Visual Studio 2019 在从 GUI 添加功能时不使用它作为默认模板,这样效率更高。我的触发函数现在运行得更快了。

标签: azure azure-functions azure-blob-storage


【解决方案1】:

对于这个问题,有关于参数使用的说明:Usage

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

  • 文本阅读器
  • 字符串
  • 字节[]
  • 可序列化为 JSON 的 POCO
  • ICloudBlob
  • CloudBlockBlob
  • CloudPageBlob
  • CloudAppendBlob

所以CloudBlockBlob 几乎是你想要的类型,你唯一需要注意的是需要安装存储 SDK tehn 才能使用 blob SDK 方法。

关于为什么azure函数默认类型是Stream,首先在这个用法中有一个说明:

最好使用 Stream 或CloudBlockBlob 类型。更多 信息,请参阅本文后面的Concurrency and memory usage

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

【讨论】:

  • 谢谢乔治!我仍然没有足够的积分给你投票。
  • @R123,任何过程,如果这对你有帮助,你可以接受它作为答案。
猜你喜欢
  • 2021-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-29
  • 2020-04-09
  • 1970-01-01
  • 1970-01-01
  • 2019-11-16
相关资源
最近更新 更多