Visual Studio Azure Function发布function.json

4
我刚接触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' 绑定到字符串类型。请确保参数类型受到绑定的支持。

我可以通过更新 Azure 上的 function.json 文件以包含附加信息来解决这个问题。

enter image description here

但每次我发布到Azure时,这个文件都会被覆盖。
我已经尝试将一个与所需配置匹配的function.json文件添加到我的项目中,但这并不起作用。我有什么遗漏吗?
我该如何确保function.json文件不被每次覆盖?我需要配置我的项目以允许我管理该文件吗?
1个回答

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接