wot*_*324 4 azure azure-storage azure-functions
我有一个小的 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");
}
}
}
Run Code Online (Sandbox Code Playgroud)
我试图"samples-workitems"用一个与我的容器名称相关的变量来替换。我只想使用一个容器,但我不想对其进行“硬编码”。
如果我在正确的行上,则此设置存储在function.json编译时构建的内容中。在本地工作时,我认为 / 认为 的内容function.json是由 读取的local.settings.json,但是我现在认为这是针对 appSettings.json。
阅读 MS doco,尤其是在trigger bindings 上,看起来myContainer/{name}应该从 function.json 中读取。我知道 function.json 是动态构建的,不应修改。
我尝试了各种我知道的基本上替换 string 的方法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.
Run Code Online (Sandbox Code Playgroud)
我相信我需要做的是以编程方式“创建”(或更新)中的path值function.json,但我不知道如何做到这一点。
任何人都可以阐明我需要做什么以及可能如何做?
在local.settings.json本地或 Azure 上的应用程序设置中指定容器名称。
{
"IsEncrypted": false,
"Values": {
....
"MyBlobContainer":"samples-workitems"
}
}
Run Code Online (Sandbox Code Playgroud)
在您的函数签名中,使用包裹在百分号中的App 设置绑定表达式。
public static void Run([BlobTrigger("%MyBlobContainer%/{name}", Connection = "")]Stream myBlob, string name, ILogger log)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2167 次 |
| 最近记录: |