我正在编写一个由 Blob 上传触发的 C# 函数。我想读取容器中的另一个文件。输入绑定(bind)如何带来第二个 blob?
public static async Task Run([BlobTrigger("csv/{name}.csv", Connection = "StorageConnectionAppSetting")]Stream myBlob, string name, ILogger log)
除了这个问题之外,我如何在代码中引用 local.settings.json 中的值?我可以在输入绑定(bind)上引用“StorageConnectionAppSetting”,但我不确定如何对使用 APIKEY 创建客户端的代码部分执行相同操作。
谢谢!
最佳答案
- blob 触发器可以是单个 blob,但您可以向函数添加输入绑定(bind)。在这种情况下,您可以通过添加对存储 SDK 的引用来将输入绑定(bind)添加到
CloudBlobContainer
,然后读取该容器中的任何 Blob。 https://learn.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-blob-input?tabs=csharp#usage .
另一个选择是不使用输入绑定(bind)并像通常使用存储 SDK 那样读取容器及其内容。在这两种情况下,您都需要添加对 Microsoft.Azure.Storage.Blob
的引用。
- 对于应用设置,您可以使用
System.Environment.GetEnvironmentVariable("APIKEY");
,假设APIKEY
是您的客户设置。请记住,local.settings.json 仅是本地的,您需要通过 Azure 门户或通过 ARM 模板的 CI/CD 管道在 Azure 中设置这些值。
您还可以使用 Azure 函数依赖项注入(inject)和注入(inject)配置。检查使用选项和设置
部分,地址:https://learn.microsoft.com/en-us/azure/azure-functions/functions-dotnet-dependency-injection#working-with-options-and-settings
关于c# - 如何从 Azure 函数中获取多个 blob?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69511107/