【发布时间】:2019-01-26 20:08:56
【问题描述】:
我有一个小 C# 应用程序,它在将新 blob 添加到存储帐户中的容器时执行一些操作。
我正在使用 Visual Studio 2017 在本地工作。
VS 模板给了我:
using System.IO;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using Microsoft.Extensions.Logging;
namespace LogicAppTriggerFunction
{
public static class BlobTrigger
{
[FunctionName("BlobTrigger")]
public static void Run([BlobTrigger("samples-workitems/{name}", Connection = "")]Stream myBlob, string name, ILogger log)
{
log.LogInformation($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myBlob.Length} Bytes");
}
}
}
我正在尝试将"samples-workitems" 替换为与我的容器名称相关的变量。我只想使用一个容器,但我不想“硬编码”它。
如果我在正确的行上,则此设置存储在编译时构建的function.json 中。在本地工作时,我认为/认为function.json 的内容是由local.settings.json 读取的,但是我现在认为这适用于appSettings.json。
阅读 MS 文档,尤其是在 trigger bindings 上,看起来应该从 function.json 中读取 myContainer/{name}。我知道 function.json 是动态构建的,不应修改。
我尝试了各种我知道的方法来实质上替换字符串myContainer/{name},但它们都导致错误:
[20/08/2018 14:56:36] Run: Microsoft.Azure.WebJobs.Host: Error indexing method 'TriggerLogicApp.Run'. Microsoft.Azure.WebJobs.Host: Invalid blob trigger path '{container}/{name}'. Container paths cannot contain {resolve} tokens.
我相信我需要做的是以编程方式“创建”(或更新)function.json 中的 path 值,但我不知道如何执行此操作。
谁能阐明我需要做什么以及如何做?
【问题讨论】:
标签: azure azure-storage azure-functions