#c# #azure #azure-functions #azure-blob-storage #azure-blob-trigger
#c# #azure #azure-функции #azure-blob-хранилище #azure-blob-триггер
Вопрос:
У меня есть простой триггер хранилища больших двоичных объектов Azure, определенный и развернутый в azure. Я хочу, чтобы он регистрировался при загрузке файла в контейнер для хранения больших двоичных объектов с именем «mycontainer».
В настройках конфигурации я добавил значение для строки подключения моей учетной записи хранилища в параметр с именем «AzureWebJobsStorage».
Чтобы просмотреть журналы, я перехожу к монитору> журналы> Журналы файловой системы. После этого я загружаю два файла в свою учетную запись хранилища больших двоичных объектов, ожидая отображения имени и байтов, но безуспешно. Есть ли дополнительные вещи, которые мне нужно настроить, чтобы он работал? Есть ли другие места, которые я могу проверить, чтобы убедиться, что функция прослушивает контейнер для хранения?
Вот мой триггер Azure function blob.
using System;
using System.IO;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using Microsoft.Extensions.Logging;
namespace resume
{
public static class MyApp
{
[FunctionName("MyApp")]
public static void Run([BlobTrigger("mycontainer/{name}", Connection = "AzureWebJobsStorage")]Stream myBlob, string name, ILogger log)
{
log.LogInformation($"C# Blob trigger function Processed blobn Name: {name} n Size: {myBlob.Length} Bytes");
}
}
}
Я также замечаю, что я получаю исключения в текущих показателях, которые выдают следующую ошибку:
Microsoft.WindowsAzure.Storage.StorageException: No such host is known.
---> System.Net.Http.HttpRequestException: No such host is known.
---> System.Net.Sockets.SocketException (11001): No such host is known.
at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)
--- End of inner exception stack trace ---
at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean allowHttp2, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.DiagnosticsHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.FinishSendAsyncUnbuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteAsyncInternal[T](RESTCommand`1 cmd, IRetryPolicy policy, OperationContext operationContext, CancellationToken token)
--- End of inner exception stack trace ---
at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteAsyncInternal[T](RESTCommand`1 cmd, IRetryPolicy policy, OperationContext operationContext, CancellationToken token)
at Microsoft.Azure.WebJobs.Host.Queues.Listeners.QueueListener.ExecuteAsync(CancellationToken cancellationToken) in C:projectsazure-webjobs-sdk-rqm4tsrcMicrosoft.Azure.WebJobs.Extensions.StorageQueuesListenersQueueListener.cs:line 183
at Microsoft.Azure.WebJobs.Host.Timers.TaskSeriesTimer.RunAsync(CancellationToken cancellationToken) in C:projectsazure-webjobs-sdk-rqm4tsrcMicrosoft.Azure.WebJobs.HostTimersTaskSeriesTimer.cs:line 147
Ответ №1:
Я считаю, что это может быть вызвано несколькими причинами:
- Дважды проверьте строку подключения к хранилищу и убедитесь, что она действительна (и полная).
- Убедитесь, что учетная запись хранилища, на которую вы указываете, НЕ относится к типу «BlobStorage» (используйте General Purpose (V2). Я слышал, что учетные записи хранения не общего назначения не работают для триггеров.
Если это не одна из этих проблем, какую версию функций вы используете?
Комментарии:
1. Это был тип BlobStorage. Я обновился, и теперь он работает, спасибо!!