Visual Studio Azure函数发布function.json

时间:2017-06-07 10:32:26

标签: c# azure visual-studio-2017 azure-functions

我是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。

enter image description here

当我的功能代码只是

时,这样可以正常工作
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文件以包含其他信息,

enter image description here

但每次我发布到Azure时,都会覆盖此文件。

我尝试将一个function.json文件添加到我的项目中,该文件与所需的配置相匹配,但这不起作用。我错过了什么吗?

如何确保每次都不会覆盖function.json文件?我是否需要配置项目以允许我管理文件?

1 个答案:

答案 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中添加所需的行。