azure - 如何创建azure函数来访问多个azure blob存储帐户?

标签 azure azure-functions azure-blob-storage

请帮助解决此问题。

我有两个 Azure Blob 存储帐户 storage1 和 storage2,如何编写一个 Azure 函数,该函数应在任何文件上传到存储帐户后触发。

最佳答案

您可以只创建在这 2 个不同的 blob 上触发的 2 个函数,并创建一种处理文件的方法,如下所示:

功能1:

public static class Function1
{
    [FunctionName("Function1")]
    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");
        new MySharedCode().Process(myBlob, name, log);            
    }
}

函数2:

public static class Function2
{
    [FunctionName("Function2")]
    public static void Run([BlobTrigger("samples-workitems/{name}", Connection = "AzureWebJobsStorage2")]Stream myBlob, string name, ILogger log)
    {
        new MySharedCode().Process(myBlob, name, log);
    }
}

并有一些共享代码来处理上传的文件:

class MySharedCode
{
    internal void Process(Stream myBlob, string name, ILogger log)
    {
        // Process the file
    }
}

在设置文件中,您必须设置存储连接字符串:

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "{connection string to storage1}",
    "AzureWebJobsStorage2": "{connection string to storage2}",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet"
  }
}

对我来说效果很好。这个想法基于这个 github 线程: https://github.com/Azure/azure-functions-host/issues/1544

关于azure - 如何创建azure函数来访问多个azure blob存储帐户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53518432/

相关文章:

azure - Blob 存储与 Azure Functions 的兼容性

azure - 如何为 Azure Premium Verizon CDN、httpTohttps 和 SPA 重写规则编写规则引擎?

python - 使用 python API 列出 Azure Blob 存储上的文件

azure - 在 Databricks API 2.0 中创建范围 - INVALID_PARAMETER_VALUE

azure - Windows Azure 使用 A6 vmsize 部署云服务

c# - 如何从 C# 连接到 Azure Analysis Services?

node.js - 如何在 Visual Studio 2017 的 Azure Functions v2 中包含并运行 NodeJS?

Azure 服务总线 1.1 无法启动

azure - Set-AzContext 在运行函数的所有实例中设置上下文

c# - 在 Azure Function 中处置 NLog