У меня нет контейнера azure-webjobs-hosts в обозревателе хранилища azure, поэтому мое приложение-функция azure не запускается

Я включил наш проект разработки, и у других разработчиков нет проблем.

Я запускаю эмуляцию хранилища Azure.

В моем случае, когда я запускаю его, я получаю сообщение об ошибке 404, в котором говорится, что контейнер не найден.

Развернув его, контейнер называется «azure-webjobs-hosts», и поиск в Google показывает, что это стандартное имя контейнера, в котором хранится информация о веб-заданиях.

Я не могу найти, как это сначала создается, и код, который я извлек, основанный на новом проекте по умолчанию, не создает его.

Я хотел бы узнать, как обычно создается контейнер «azure-webjobs-hosts», так как я ничего не могу найти в Интернете. Возможно, мне нужно установить какой-то инструмент, библиотеку или SDK?

Я бы предположил, что он должен быть создан автоматически, если он отсутствует, но может показаться, что я каким-то образом пропустил шаг.

Если я создаю контейнер вручную, он затем жалуется на отсутствующий большой двоичный объект, и вместо того, чтобы пытаться исправить это самостоятельно, я подумал, что было бы лучше, если бы я обнаружил корневую проблему и решил ее.

Какие-либо предложения?

Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
0
77
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

По моему опыту,

Возможно, мне нужно установить какой-то инструмент, библиотеку или SDK?

Azure Web Jobs SDK — это пакет NuGet, который можно установить с помощью командлетов, указанных на официальном сайте.

Я бы предположил, что он должен быть создан автоматически, если он отсутствует, но может показаться, что я каким-то образом пропустил шаг.

Да, он будет создан/добавлен автоматически как пространство имен, ссылки на пакеты при создании функций Azure, поскольку этот пакет связан с учетной записью хранения и необходим для хранения данных, т. е. для обработки в фоновом режиме. Вы можете получить больше информации об его использовании из официальной статьи GitHub об интеграции SDK Azure Web Jobs.

Я хотел бы узнать, как обычно создается контейнер «azure-webjobs-hosts», так как я ничего не могу найти в Интернете.

В локальной системе:

azure-webjobs-hosts — это папка, создаваемая в контейнере больших двоичных объектов локально, как только эта учетная запись хранения используется любым приложением, которое переходит в рабочее состояние.

Папка с именем Locks будет создана внутри azure-webjobs-hostsконтейнера/папки.

timers папка, также созданная во время запуска функции запуска таймера, и файлы журнала, также созданные с типом блочного BLOB-объекта внутри папки замков, а также папки таймеров.

Еще несколько папок, созданных в контейнере BLOB-объектов автоматически в зависимости от типа триггера/приложения, интегрированного с пакетом SDK Azure Web Jobs. Эти папки являются частью этой локальной учетной записи хранения, их можно удалить вручную, а также создать заново при запуске приложения.

На портале Azure (облако):

При создании приложения-функции Azure на портале требуется учетная запись хранения. После создания функции будут в рабочем состоянии, поэтому можно создать контейнеры, такие как azure-webjobs-hosts, azure-webjobs-secrets, в которых хранятся некоторые данные, такие как файл host.json (содержащий ключи авторизации), доступный в azure-webjobs-secrets.

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

После публикации проекта локальной функции (.Net 6) с триггерами Http и таймера из среды IDE VS2022 в приложении функции портала Azure в связанном контейнере учетной записи хранения можно создать следующую папку:

Это функциональные возможности azure-webjobs-hosts и пакета SDK для веб-заданий Azure в приложении-функции Azure, и дополнительные сведения об их использовании можно найти в упомянутых выше ссылках.

Спасибо, это очень полезно, к сожалению, я нашел настоящую причину и разместил свой ответ ниже, но я надеюсь, что ваш ответ поможет другим.

NibblyPig 22.01.2023 15:30
Ответ принят как подходящий

Я решил эту проблему, и это было очень просто. У меня был включен перерыв во всех исключениях.

По какой-то причине они решили, что хотя в первый раз ожидается отсутствие контейнера, они будут генерировать исключение. Это исключение повторно генерируется несколько раз и в конечном итоге обрабатывается чем-то, что создает контейнер.

IMO, это плохой дизайн, учитывая, что программа ожидает, что при первом запуске контейнера не будет, и при необходимости создаст его, это не должно быть исключением.

Во всяком случае, это было причиной. Нажатие F5 или установка параметров исключения по умолчанию, чтобы он не обнаруживал ошибки времени выполнения, решит проблему.

Другие вопросы по теме