Как создать функцию Azure для доступа к нескольким учетным записям хранилища BLOB-объектов Azure? - PullRequest
0 голосов
/ 28 ноября 2018

Пожалуйста, помогите решить эту проблему.

У меня есть две учетные записи хранилища больших двоичных объектов Azure: хранилище1 и хранилище2, как написать функцию Azure, которая должна запускаться после загрузки любых файлов в учетные записи хранилища.

1 Ответ

0 голосов
/ 02 января 2019

Вы можете просто создать 2 функции, которые срабатывают на этих 2 разных BLOB-объектах, и создать один метод для обработки файлов, например, так:

Function1:

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);            
    }
}

Function2:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...