Приложение, запускаемое с помощью EventHub, локально - где хранятся сообщения?

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

Мои настройки приложения для моей функции используют UseDevelopmentStorage=true и не связаны ни с одной из моих учетных записей хранения, кроме того, описанный выше сценарий не всегда происходил каждый раз, но меня это беспокоило, потому что я понятия не имел, почему одно и то же сообщение должно срабатывать многократно раз, которые находятся вне моего контроля, после того, как сообщение было опубликовано и использовано приложением-функцией, оно должно исчезнуть из очереди сообщений концентратора событий, верно?

Может ли кто-нибудь сообщить мне, где я могу проверить свои сообщения, хранящиеся локально или опубликованные на портале Azure? Большое спасибо!


person KevDing    schedule 05.08.2019    source источник


Ответы (1)


Может ли кто-нибудь сообщить мне, где я могу проверить свои сообщения, хранящиеся локально или опубликованные на портале Azure?

Во-первых, я боюсь, что функция azure не сохранит ваши сообщения в кеше. На основе официальный документ:

Когда выполнение всех функций завершается (с ошибками или без них), контрольные точки добавляются в связанную учетную запись хранения. При успешном выполнении контрольной точки все 1000 сообщений больше никогда не извлекаются.

Выше описание механизма контрольной точки концентратора событий. Кроме того, вы можете обратиться к этому блог. AzureWebJobsStorage устанавливается равным UseDevelopmentStorage=true при локальной отладке функции, поэтому я предлагаю вам проверить данные в локальной учетной записи хранения. Когда вы запустите ее на портале, соответствующая учетная запись хранения будет проверена.

Вот несколько похожих проблем для справки:

1. https://github.com/Azure/azure-functions-host/issues/2796

2. https://github.com/Azure/Azure-Functions/issues/589 < / а>

3. https://github.com/Azure/azure-event-hubs-dotnet/issues/358

Конечно, вы можете открыть стек здесь, чтобы получить дополнительную помощь.

person Jay Gong    schedule 13.08.2019
comment
Привет да спасибо! Мне просто нужно время, чтобы разобраться в этом на моем локальном компьютере. Здесь в основном я отлаживаю на своем локальном компьютере, и у меня уже был UseDevelopmentStorage=true, согласно вашему предложению, проверяя данные в локальной учетной записи хранения, я не уверен, что здесь означает локальная учетная запись хранения ... Поскольку я не помещал учетную запись хранения информации внутри функции, и я не думаю, что у меня будет локальная учетная запись ... Не могли бы вы поделиться некоторыми дополнительными знаниями о локальной отладке и проверке с помощью локальной учетной записи? - person KevDing; 15.08.2019
comment
@KevDing Suer, вы можете получить представление об эмуляторе хранилища, который используется для учетной записи разработчика локального хранилища: docs.microsoft.com/en-us/azure/storage/common/, другой инструмент под названием Storage Explorer может использоваться для проверки информации локальной учетной записи хранения: azure.microsoft.com/en-us/features/storage-explorer - person Jay Gong; 19.08.2019