Привязка подписки на EventGrid работает через ngrok к локальному компьютеру, а не с функцией в Azure. - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть приложение-функция Azure, на которое я могу создать подписку EventGrid, когда она размещается на компьютере разработчика через ngrok, но точно такая же функция, когда публикуется в Azure, не принимает подписку.

Ошибка: «Попытка проверить предоставленную конечную точку <> не удалась».

Я рассмотрел очевидные вещи, такие как длина URL, но это, похоже, не является причиной.Единственное различие между двумя URL-адресами - это хост, как в URL-адресе хоста приложения-функции, и сгенерированный хостом ngrok.Я пытался использовать портал и CLI для создания подписок с одинаковым результатом.

Есть идеи, как это исправить?

Ответы [ 3 ]

0 голосов
/ 26 сентября 2018

Ответ заключается в том, чтобы включить параметр кода при доступе к подписчику EventGrid в облаке, а не на компьютере разработчика.Подробности здесь.https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-event-grid#create-a-subscription

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

0 голосов
/ 31 января 2019

У меня была та же проблема с использованием Azure CLI в powershell.Для меня ответом был, по сути, комментарий Романа Кисса: избежать URL конечной точки, поскольку он содержит символ &.

например, изменив это:

  -endPoint "https://xxxx.azurewebsites.net/runtime/webhooks/EventGrid?FunctionName=xxxx&code=xxxxx"

на следующее:

  -endPoint "https://xxxx.azurewebsites.net/runtime/webhooks/EventGrid?functionName=xxxx""&""code=xxxx"

Причина, по которой он работал с использованием ngrok, заключалась в том, что конечной точке ngrok (указывающей на хост локальной функции разработки) не требуется часть & code = xxxx.

0 голосов
/ 20 сентября 2018

Существует два вида триггеров функции Azure, которые можно использовать для подписчика сетки событий, например:

  1. HttpTrigger

    endpointUrl format = https://{functionApp}.azurewebsites.net/api/{functionName}?code={functionKey}
    

Обратите внимание, что функция HttpTrigger отвечает за проверку сообщения сетки событий.Подробнее здесь .

EventGridTrigger

endpointUrl format = https://{functionApp}.azurewebsites.net/admin/extensions/EventGridExtensionConfig?functionName={functionName}&code={_masterKey}

Похоже, ваша конечная точка не содержит строку URL-запроса.

...