我是Azure Functions的新手,并试图将它们与Blob Storage结合使用。
我已下载Visual Studio 2017 Preview,这使我有权创建Azure Function项目模板(https://marketplace.visualstudio.com/items?itemName=AndrewBHall-MSFT.AzureFunctionToolsforVisualStudio2017)
然后按照此示例https://blogs.msdn.microsoft.com/webdev/2017/05/10/azure-function-tools-for-visual-studio-2017/我可以在VS中创建一个新函数,然后发布到Azure。
当我在Azure上查看时,我可以看到我的新函数,但它只是在function.json
文件中显示json。
当我的功能代码只是
时,这样可以正常工作public static void Run([BlobTrigger("images/{name}",
Connection = "fakename_STORAGE")]Stream myBlob, string name, TraceWriter log)
但是,当我想开始使用输出时,我将代码更改为包含out string myOutputBlob
public static void Run([BlobTrigger("images/{name}",
Connection = "fakename_STORAGE")]Stream myBlob, string name, out string myOutputBlob, TraceWriter log)
然后发布到Azure,我看到一个错误:
Microsoft.Azure.WebJobs.Host:无法将参数'myOutputBlob'绑定到 类型字符串&amp ;.确保支持参数Type 结合。
我可以绕过这个购买更新Azure上的function.json文件以包含其他信息,
但每次我发布到Azure时,都会覆盖此文件。
我尝试将一个function.json文件添加到我的项目中,该文件与所需的配置相匹配,但这不起作用。我错过了什么吗?
如何确保每次都不会覆盖function.json文件?我是否需要配置项目以允许我管理文件?
答案 0 :(得分:8)
您必须使用属性修饰输出参数,以配置所需的输出绑定类型:
public static void Run(
[BlobTrigger("images/{name}", Connection = "fakename_STORAGE")]Stream myBlob,
string name,
[Blob("images/copy-{name}", Connection = "fakename_STORAGE")]out string myOutputBlob,
TraceWriter log)
将在发布期间在function.json
中添加所需的行。