gpt4 book ai didi

azure - 将容器名称作为参数传递给 BlobTrigger

转载 作者:行者123 更新时间:2023-12-04 11:56:08 27 4
gpt4 key购买 nike

我有一个小的 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 doco,特别是 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值,但我不知道如何来做到这一点。

任何人都可以阐明我需要做什么以及如何做吗?

最佳答案

在本地的 local.settings.json 或 Azure 上的应用程序设置中指定容器名称。

{
"IsEncrypted": false,
"Values": {
....
"MyBlobContainer":"samples-workitems"
}
}

在函数签名中,使用 App setting binding expressions用百分号包裹。

public static void Run([BlobTrigger("%MyBlobContainer%/{name}", Connection = "")]Stream myBlob, string name, ILogger log)

关于azure - 将容器名称作为参数传递给 BlobTrigger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51935084/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com