azure - 如何从 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)
{}
解决方案
对于这个问题,有一个关于参数使用的描述:Usage。
您可以对触发 blob 使用以下参数类型:
- 溪流
- 文本阅读器
- 细绳
- 字节[]
- 可序列化为 JSON 的 POCO
- iCloudBlob
- 云块Blob
- CloudPageBlob
- CloudAppendBlob
所以几乎CloudBlockBlob
是您想要的类型,您只需要注意需要安装存储 SDK tehn,您将能够使用 blob SDK 方法。
关于为什么 azure function default type is Stream
,首先在这个用法中有一个描述:
最好使用 Stream 或
CloudBlockBlob
类型。有关详细信息,请参阅本文后面的并发和内存使用情况。
另一个原因可能是该Stream
类型更适用,因为它可能是其他blob类型,默认不需要安装SDK。
推荐阅读
- vue.js - Vue slick 轮播滑块 asNavFor 问题
- python - 赋值前引用的 Tkinter 错误局部变量
- node.js - 使用 Node js Mocha 运行单个测试文件
- c# - 从 Db Repository ASP.net 核心的选择列表中添加项目
- ruby-on-rails - 你需要对 Rails 做些什么来使规范文件与它们描述的代码一起存在?
- elasticsearch - 在 kibana 中使用 _ignored 字段
- android - Intent.ACTION_OPEN_DOCUMENT_TREE 和 DocumentsContract.buildChildDocumentsUri 不匹配
- css - 如何根据其他网格项的大小垂直居中网格项?
- android - 在 Android 上无法链接可执行文件
- java - JUnit Test Case not appearing in JUnit Explorer