Visual Studio Azure函数发布function.json

Tim*_*mes 3 c# azure azure-functions visual-studio-2017

我是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)
Run Code Online (Sandbox Code Playgroud)

但是,当我想开始使用输出时,我将代码更改为包含 out string myOutputBlob

public static void Run([BlobTrigger("images/{name}", 
    Connection = "fakename_STORAGE")]Stream myBlob, string name, out string myOutputBlob, TraceWriter log)
Run Code Online (Sandbox Code Playgroud)

然后发布到Azure,我看到一个错误:

Microsoft.Azure.WebJobs.Host:无法将参数'myOutputBlob'绑定到String&.确保绑定支持参数Type.

我可以绕过这个购买更新Azure上的function.json文件以包含其他信息,

在此输入图像描述

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

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

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

Mik*_*kov 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)
Run Code Online (Sandbox Code Playgroud)

这将function.json在发布期间添加您所需的行.