#azure-eventgrid
#azure-eventgrid
Вопрос:
Я пытаюсь добавить подписчика в сетку событий Azure в соответствии с документацией для javascript. При тестировании как локально, так и против службы веб-приложений Azure, запущенной из образа docker, ответ кажется правильным (?) При тестировании с помощью curl / postman с фиктивным сообщением о проверке, Однако сетка событий завершается с ошибкой при добавлении подписчика Azure web app — есть идеи, что я делаю не так?
Deployment has failed with the following error: {"code":"Url validation","message":"Webhook validation handshake failed for https://blablablba.azurewebsites.net/event. Http POST request retuned 2XX response with response body {"validationResponse":"BF3F55BB-862E-447F-8C49-8D7538D60484". When a validation request is accepted without validation code in the response body, Http GET is expected on the validation url included in the validation event(within 10 minutes). For troublehooting, visit https://aka.ms/esvalidation. Activity id:blablalba-7c10-4002-a5ea-c2e7a1701d04, timestamp: 11/8/2020 9:45:33 PM (UTC)."}
Код, в основном скопированный, вставлен из документов..
eventHook: function(req, res) {
var validationEventType = "Microsoft.EventGrid.SubscriptionValidationEvent";
var storageBlobCreatedEvent = "Microsoft.Storage.BlobCreated";
for (var events in req.body) {
var body = req.body[events];
if (body.data amp;amp; body.eventType == validationEventType) {
var code = body.data.validationCode;
res.status(200).send({
"validationResponse": code
});
}
else if (body.data amp;amp; body.eventType == storageBlobCreatedEvent) {
var blobCreatedEventData = body.data;
//Handle blob created event
}
}
}
Тестирование с помощью Curl
curl -w " | statusCode= %{http_code} n" -X POST -d '[{"id": "2d1781af-3a4c-4d7c-bd0c-e34b19da4e66","topic": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","subject": "","data": {"validationCode": "512d38b6-c7b8-40c8-89fe-f46f9e9622b6"},"eventType": "Microsoft.EventGrid.SubscriptionValidationEvent","eventTime": "2018-01-25T22:12:19.4556811Z", "metadataVersion": "1","dataVersion": "1"}]' -H 'Content-Type: application/json' https://blablablba.azurewebsites.net/event
Ответ
{"validationResponse":"512d38b6-c7b8-40c8-89fe-f46f9e9622b6"} | statusCode= 200
С помощью Postman
{
"validationResponse": "512d38b6-c7b8-40c8-89fe-f46f9e9622b6"
}
Ответ №1:
Ну, по-видимому, это была просто azure, являющаяся azure .. попробовал еще раз после публикации этого вопроса, очевидно, и тогда это сработало. #life. да, надеюсь, это поможет кому-то еще позже