Каков правильный формат конечной точки для создания подписки Event Grid

У меня есть функция Azure, выполняемая триггером Event Grid. Функция отлажена и работает так, как задумано. Мне удалось успешно создать подписку на тему сетки событий с помощью пользовательского интерфейса на портале Azure (щелкните Add Event Grid subscription и заполните экранную форму).

Проблема в том, что я не могу правильно указать формат конечной точки при попытке использовать интерфейс командной строки (Cloud Shell вошел в систему как администратор) для создания подписки. Я использую базовый шаблон

az eventgrid event-subscription create --resource-group $resourceGroup
--topic-name $topicName
--included-event-types $includedEventTypes
--name $eventSubscriptionName
--endpoint  https://XXX.azurewebsites.net/admin/extensions/EventGridExtensionConfig?functionName=FunctionName&code=ABC123

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

The term 'code=<XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX> is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

Если я опущу код, я получаю сообщение о том, что подписка не удалась, потому что не удалось проверить конечную точку.

Если я попытаюсь использовать конечную точку в форме, обычно наблюдаемой для конечных точек функций, https://XXX.azurewebsites.net/FunctionName, я также получаю жалобы на проверку.

Каков правильный формат конечной точки при создании подписки из интерфейса командной строки в Cloud Shell? Я должен включать параметр кода или нет? Где мне взять правильный код?

С использованием:

Microsoft.NET.Sdk.Functions 1.0.19
Microsoft.Azure.EventGrid 1.4.0
Microsoft.Azure.WebJobs.Extensions.EventGrid 1.0.0

посмотрите docs.microsoft.com/en-us/azure/azure-functions/…

Roman Kiss 01.09.2018 18:28

полный subscriberUrl для EventGridTrigger имеет следующий формат: https: // {FunctionAppName} .azurewebsites.net / admin / extensions‌ / EventGridExtensionC‌ onfig? functionName = {‌ EventGridTriggerFunc‌tionName} & code = {mast‌ erKey}

Roman Kiss 01.09.2018 18:30

Я попытался подписаться с использованием _master и ключей хоста по умолчанию, а также системного ключа, созданного путем отправки запроса GET с ключом _master. Все привело к The term 'code=XXXX' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

DenaliHardtail 01.09.2018 19:02

Я только что протестировал его с помощью ключа _master с помощью CLI на портале (подписка на событие обновления) со значением конечной точки, заключенным в двойные кавычки, как рекомендовано ответом Джерри.

Roman Kiss 01.09.2018 19:57

Я просто пробовал использовать двойные кавычки и использовать ключ _master. Теперь получаю The attempt to validate the provided endpoint https://XXX.azurewebsites.net/admin/extensions/EventGridExte‌​nsionConfig failed. For more details, visit https://aka.ms/esvalidation.

DenaliHardtail 01.09.2018 20:07

Обратите внимание, что имя функции чувствительно к регистру. Постарайтесь точно соответствовать названию вашей функции.

Roman Kiss 01.09.2018 20:17
Как установить 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
6
169
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте заключить конечную точку функции в кавычки, & кажется зарезервированным знаком в синтаксисе CLi, поэтому ваш параметр code вырезан из URL-адреса.

Заключение конечной точки в кавычки решило проблему. В какой-то момент приложение-функция перестало работать. После повторной публикации и помещения конечной точки в кавычки и использования ключа _master все заработало, как ожидалось.

DenaliHardtail 01.09.2018 21:44

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