Как связать входной параметр функции Azure с учетной записью хранилища? - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь создать функцию Azure (ядро .NET) для извлечения SaS из учетной записи хранилища и пытаюсь понять, почему я не могу получить доступ к хранилищу.

Сигнатура функции:

public static async Task<IActionResult> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = null)] HttpRequest req,
[StorageAccount("StorageConnectionString")] StorageAccount storage,
ILogger log)

При его запуске возникает следующая ошибка:

Ошибка индексации метода «GetBlobSaS» Microsoft.Azure.WebJobs.Host: Невозможно привязать параметр «хранилище» к типу StorageAccount.Убедитесь, что параметр Type поддерживается привязкой.Если вы используете привязки расширений (например, хранилище Azure, ServiceBus, таймеры и т. Д.), Убедитесь, что вы вызвали метод регистрации расширений в своем коде запуска (например, builder.AddAzureStorage (), builder.AddServiceBus (), builder.AddTimers () и т. д.).

Если я создаю ссылку на учетную запись хранения напрямую, она отлично работает:

var storage = StorageAccount.NewFromConnectionString(System.Environment.GetEnvironmentVariable("StorageConnectionString"));

Что я неправильно понимаю или делаюнеправильно?

1 Ответ

0 голосов
/ 01 февраля 2019

Ошибка, которую вы получаете, является ошибкой, что среда выполнения функции не понимает сигнатуру метода.Атрибут [StorageAccount] требует CloudStorageAccount.

Поэтому измените подпись на:

[FunctionName("Function1")]
public static async Task<IActionResult> Run(
    [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
    [StorageAccount("StorageConnectionString")] CloudStorageAccount storage,
    ILogger log)
{
...