Функция Azure Blobtrigger — InvalidResourceName ⇐ C#
-
Anonymous
Функция Azure Blobtrigger — InvalidResourceName
В Azure я настраиваю функцию Azure с помощью blobtrigger, она использует строку подключения SAS к учетной записи хранилища BLOB-объектов в той же подписке и в той же группе ресурсов. При запуске функции в потоке журнала Kudu или в сведениях о приложении я получаю следующее исключение: Azure.RequestFailedException: в Azure.Storage.Queues.QueueRestClient+d__14.MoveNext (Azure.Storage.Queues, Version=12.14.0.0, Culture=neutral, PublicKeyToken=92742159e12e44c8) в System.Runtime.ExceptionServices.ExceptionDispatchInfo .Throw (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) в Azure.Storage.Queues.QueueClient+d__61.MoveNext ( Azure.Storage.Queues, Version=12.14.0.0, Culture=neutral, PublicKeyToken=92742159e12e44c8) в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e ) в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version) =6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) в Azure.Storage.Queues.QueueClient+d__52.MoveNext (Azure.Storage.Queues, Version=12.14.0.0, Culture=neutral, PublicKeyToken=92742159e12e44c8) в System .Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=6.0. 0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) в Azure.Storage.Queues. ОчередьКлиент+< ExistsAsync>d__51.MoveNext (Azure.Storage.Queues, Version=12.14.0.0, Culture=neutral, PublicKeyToken=92742159e12e44c8) в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=6.0.0.0, Culture) =нейтрально, PublicKeyToken=7cec85d7bea7798e) в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSu ccessAndDebuggerNotification (Система .Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) в Microsoft.Azure.WebJobs.Extensions.Storage.Common.Listeners.QueueListener+d__34.MoveNext (Microsoft.Azure.WebJobs.Extensions. Storage.Blobs, Version=5.2.0.0, Culture=neutral, PublicKeyToken=92742159e12e44c8) в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) в System.runtime.compilerservices.taskawaiter.ThrowFornOnSuccess (System.Private.corelib, версия = 6.0.0.0, культура = нейтральная, publickeyToken = 7cec85d7bea7798e) на system.runtime.compilerservices.taskawaiter.shorivaterivate.corivates.coristizernotifition.compilerservices.taskawaiter. .0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) в Microsoft.Azure.WebJobs.Extensions.Storage.Common.Timers.TaskSeriesTimer+d__14.MoveNext (Microsoft.Azure.WebJobs.Extensions.Storage.Blobs, Version=5.2. 0.0, Культура=нейтрально, PublicKeyToken=92742159e12e44c8)
Итак, сейчас в игре задействовано несколько разных сред: локальная сеть разработки, env X, dev, test и песочница. При разработке на моей локальной машине все работает нормально, никаких проблем. X — это среда, которую я развернул с помощью публикации в Visual Studio, и она работает отлично. Разработка, тестирование и песочница развертываются через конвейеры бицепса через DevOps, все три имеют одну и ту же проблему.
Разработка, тестирование, песочница и X находятся в одной подписке Azure.
Мне кажется, что функция может добраться до хранилища BLOB-объектов, что-то где-то идет не так с QueueRestClient, он получает ошибку, которую не может проанализировать, и поэтому возвращает сообщение об ошибке, которое не имеет отношения к проблеме.
>
Код триггерной функции:
public async Task Run([BlobTrigger("drop/{name}.csv")] поток потока, имя строки)
Что я пробовал
[*]
Раньше это была только разработка и тестирование, настройка в начале проекта. Как только я обнаружил, что они не работают, я развернул песочницу, когда код был полностью реализован, надеясь (потому что во время работы не было никаких изменений). во время разработки), что это волшебным образом сработает. Но теперь вместо 2 нерабочих сред у меня 3.
[*]
Поскольку env X работал, я попытался изменить строку подключения из хранилища BLOB-объектов X в хранилище BLOB-объектов разработки
X продолжал нормально работать при удалении файла. [*]
При изменении строки подключения с dev на использование хранилища BLOB-объектов X
Все равно не помогло, выдала ту же ошибку. [*]
При добавлении функции HttpTrigger в тот же проект функции
Функция пингуется и работает нормально. [*]
Добавление второй функции триггера BLOB-объекта, которая не делает ничего, кроме протоколирования событий при удалении файла (поэтому нет сложной логики)
Та же ошибка, что и в «настоящей» функции. [*]
Используйте два отдельных контейнера для хранения BLOB-объектов, так как это предложил один из моих коллег
Нет разницы, та же ошибка, что и раньше. [*]
Использовать управляемое удостоверение вместо SAS
Нет разницы, та же ошибка, что и раньше. [*]
Двойная, тройная, четверная проверка, сравнение текста в Notepad++, чтобы убедиться в правильности области строк подключения
[*]
Поместите в конфигурацию строки подключения вместо ссылок на хранилище ключей
Нет разницы, та же ошибка, что и раньше. [*]И намеренное введение неправильной строки подключения говорит мне о том, что функция правильно читает строку подключения. [*]
Проверено, имеют ли разработчик и тестировщик одинаковый идентификатор хоста и блокируют друг друга.
Проверено, это не так [*]
Проверены все настройки между функцией dev и функцией X
Все настройки такие же, кроме: Настройки тарифного плана, увеличение и уменьшение масштаба Недостаточно знаю об этом, чтобы быть уверенным на 100 %, но сомневаюсь, что это может быть виновником. [*]У разработчика есть идентификационная информация, назначенная системой, у X нет Мы используем SAS, поэтому личность не должна иметь значения, и даже если бы она имела значение, X должен потерпеть неудачу. [*]
Загружаемый файл недействителен
Функция аварийно завершает работу еще до того, как успевает добраться до файла.
В Azure я настраиваю функцию Azure с помощью blobtrigger, она использует строку подключения SAS к учетной записи хранилища BLOB-объектов в той же подписке и в той же группе ресурсов. При запуске функции в потоке журнала Kudu или в сведениях о приложении я получаю следующее исключение: Azure.RequestFailedException: в Azure.Storage.Queues.QueueRestClient+d__14.MoveNext (Azure.Storage.Queues, Version=12.14.0.0, Culture=neutral, PublicKeyToken=92742159e12e44c8) в System.Runtime.ExceptionServices.ExceptionDispatchInfo .Throw (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) в Azure.Storage.Queues.QueueClient+d__61.MoveNext ( Azure.Storage.Queues, Version=12.14.0.0, Culture=neutral, PublicKeyToken=92742159e12e44c8) в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e ) в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version) =6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) в Azure.Storage.Queues.QueueClient+d__52.MoveNext (Azure.Storage.Queues, Version=12.14.0.0, Culture=neutral, PublicKeyToken=92742159e12e44c8) в System .Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=6.0. 0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) в Azure.Storage.Queues. ОчередьКлиент+< ExistsAsync>d__51.MoveNext (Azure.Storage.Queues, Version=12.14.0.0, Culture=neutral, PublicKeyToken=92742159e12e44c8) в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=6.0.0.0, Culture) =нейтрально, PublicKeyToken=7cec85d7bea7798e) в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSu ccessAndDebuggerNotification (Система .Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) в Microsoft.Azure.WebJobs.Extensions.Storage.Common.Listeners.QueueListener+d__34.MoveNext (Microsoft.Azure.WebJobs.Extensions. Storage.Blobs, Version=5.2.0.0, Culture=neutral, PublicKeyToken=92742159e12e44c8) в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) в System.runtime.compilerservices.taskawaiter.ThrowFornOnSuccess (System.Private.corelib, версия = 6.0.0.0, культура = нейтральная, publickeyToken = 7cec85d7bea7798e) на system.runtime.compilerservices.taskawaiter.shorivaterivate.corivates.coristizernotifition.compilerservices.taskawaiter. .0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e) в Microsoft.Azure.WebJobs.Extensions.Storage.Common.Timers.TaskSeriesTimer+d__14.MoveNext (Microsoft.Azure.WebJobs.Extensions.Storage.Blobs, Version=5.2. 0.0, Культура=нейтрально, PublicKeyToken=92742159e12e44c8)
Итак, сейчас в игре задействовано несколько разных сред: локальная сеть разработки, env X, dev, test и песочница. При разработке на моей локальной машине все работает нормально, никаких проблем. X — это среда, которую я развернул с помощью публикации в Visual Studio, и она работает отлично. Разработка, тестирование и песочница развертываются через конвейеры бицепса через DevOps, все три имеют одну и ту же проблему.
Разработка, тестирование, песочница и X находятся в одной подписке Azure.
Мне кажется, что функция может добраться до хранилища BLOB-объектов, что-то где-то идет не так с QueueRestClient, он получает ошибку, которую не может проанализировать, и поэтому возвращает сообщение об ошибке, которое не имеет отношения к проблеме.
>
Код триггерной функции:
public async Task Run([BlobTrigger("drop/{name}.csv")] поток потока, имя строки)
Что я пробовал
[*]
Раньше это была только разработка и тестирование, настройка в начале проекта. Как только я обнаружил, что они не работают, я развернул песочницу, когда код был полностью реализован, надеясь (потому что во время работы не было никаких изменений). во время разработки), что это волшебным образом сработает. Но теперь вместо 2 нерабочих сред у меня 3.
[*]
Поскольку env X работал, я попытался изменить строку подключения из хранилища BLOB-объектов X в хранилище BLOB-объектов разработки
X продолжал нормально работать при удалении файла. [*]
При изменении строки подключения с dev на использование хранилища BLOB-объектов X
Все равно не помогло, выдала ту же ошибку. [*]
При добавлении функции HttpTrigger в тот же проект функции
Функция пингуется и работает нормально. [*]
Добавление второй функции триггера BLOB-объекта, которая не делает ничего, кроме протоколирования событий при удалении файла (поэтому нет сложной логики)
Та же ошибка, что и в «настоящей» функции. [*]
Используйте два отдельных контейнера для хранения BLOB-объектов, так как это предложил один из моих коллег
Нет разницы, та же ошибка, что и раньше. [*]
Использовать управляемое удостоверение вместо SAS
Нет разницы, та же ошибка, что и раньше. [*]
Двойная, тройная, четверная проверка, сравнение текста в Notepad++, чтобы убедиться в правильности области строк подключения
[*]
Поместите в конфигурацию строки подключения вместо ссылок на хранилище ключей
Нет разницы, та же ошибка, что и раньше. [*]И намеренное введение неправильной строки подключения говорит мне о том, что функция правильно читает строку подключения. [*]
Проверено, имеют ли разработчик и тестировщик одинаковый идентификатор хоста и блокируют друг друга.
Проверено, это не так [*]
Проверены все настройки между функцией dev и функцией X
Все настройки такие же, кроме: Настройки тарифного плана, увеличение и уменьшение масштаба Недостаточно знаю об этом, чтобы быть уверенным на 100 %, но сомневаюсь, что это может быть виновником. [*]У разработчика есть идентификационная информация, назначенная системой, у X нет Мы используем SAS, поэтому личность не должна иметь значения, и даже если бы она имела значение, X должен потерпеть неудачу. [*]
Загружаемый файл недействителен
Функция аварийно завершает работу еще до того, как успевает добраться до файла.
Мобильная версия