Как определить, почему приложение-функция Azure не запускается веб-крючком - PullRequest
0 голосов
/ 29 декабря 2018

У меня есть:

  • Функция JavaScript Azure в конфигурации HTTP webhook;Функция предоставляет URL;Функция выполняет действие
  • Веб-крючок, настроенный в программном обеспечении. Я надеюсь получать уведомления от
  • Приложение Azure Logic с шагом HTTP / веб-крючка, который предоставляет URL-адрес для уведомления веб-крючка, на который можно перейти.

Моя цель заключается в том, чтобы URL-адрес функции Azure получал уведомления от веб-крючка программного обеспечения и выполнял действие.Приложение Azure Logic предназначено только для тестирования.

Что работает

  • Когда URL-адрес приложения Azure Logic используется в конфигурации программного обеспечения веб-крючка, выполняется требуемое действие.Все работает должным образом.
  • В журнале приложения логики Azure отображаются выходные данные JSON из входящего веб-крюка.Я ожидаю (но полагаю, что это может быть ошибкой), что это JSON, который веб-крючок отправляет на URL-адрес приложения логики Azure.Когда этот JSON используется во вкладке «Тест» пользовательского интерфейса Azure> поле «Тело запроса», выполняется требуемое действие.Все работает должным образом.
  • Когда URL-адрес функции Azure и JSON находятся в запросе почтальона, выполняется требуемое действие.Все работает как положено.

Что не работает

  • Когда URL-адрес функции Azure используется в конфигурации webhook программного обеспечения, никаких действий не выполняется.Это конечно моя цель.Из всего, что я прочитал, я понимаю, что этот URL как конечная точка веб-крюка должен работать.

URL-адрес функции Azure

Это от Получить функциюURL > по умолчанию (функциональная клавиша) .

https://<app_name>.azurewebsites.net/api/content?code=<api_key>

Другие настройки конфигурации функции Azure

  • Разрешенные методы HTTP: GET, POST
  • Уровень авторизации: Функция

JSON, который, как мне кажется, переходит через веб-крючок

{
  "headers": {
    "Expect": "100-continue",
    "Host": "redacted",
    "X-Telligent-Webhook-Sender": "redacted",
    "Content-Length": "16908",
    "Content-Type": "application/json; charset=utf-8"
  },
  "body": {
    "events": [{
      "TypeId": "ec9da4f4-0703-4029-b01e-7ca9c9ed6c85",
      "DateOccurred": "2018-12-17T22:55:37.7846546Z",
      "EventData": {
        "ActorUserId": 9999,
        "ContentId": "redacted",
        "ContentTypeId": "redacted",
        "ForumReplyId": 9999,
        "ForumThreadId": 9999,
        "ForumId": 9999
      }
    }]
  }
}

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

Что я пробовал

{
  "events": [{
    "TypeId": "ec9da4f4-0703-4029-b01e-7ca9c9ed6c85",
    "DateOccurred": "2018-12-17T22:55:37.7846546Z",
    "EventData": {
      "ActorUserId": 9999,
      "ContentId": "redacted",
      "ContentTypeId": "redacted",
      "ForumReplyId": 9999,
      "ForumThreadId": 9999,
      "ForumId": 9999
    }
  }]
}

Пример данных полезной нагрузки

{
  "events": [
    {
      "TypeId": "407ad3bc-8269-493e-ac56-9127656527df",
      "DateOccurred": "2015-12-04T16:31:55.5383926Z",
      "EventData": {
        "ActorUserId": 2100,
        "ContentId": "4c792b81-6f09-4a45-be8c-476198ba47be"
      }
    },
    {
      "TypeId": "3b75c5b9-4705-4a97-93f5-a4941dc69bc9",
      "DateOccurred": "2015-12-04T16:48:03.7343926Z",
      "EventData": {
        "ActorUserId": 2100,
        "ContentId": "4c792b81-6f09-4a45-be8c-476198ba47be"
      }
    }
  ]
}

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

Есть ли механизм в Azure,или Почтальон, или другой инструмент, который позволяет мне видеть, что JSON отправляется через веб-крючок?Или, возможно, существует другой подход к определению причины проблемы?

Спасибо за любую помощь.

1 Ответ

0 голосов
/ 24 августа 2019

Вот как я получил файл JSON из предупреждений Azure.

  1. Установить Ruby на сервер
  2. Установить Sinatra с помощью следующей команды gem install sinatra
  3. Создатьфайл webhook.rb и вставьте код ниже
require 'sinatra'

set :port, 80
set :bind, '0.0.0.0'

post '/event' do
  status 204 #successful request with no body content

  request.body.rewind
  request_payload = JSON.parse(request.body.read)

  #append the payload to a file
  File.open("events.txt", "a") do |f|
    f.puts(request_payload)
  end
end
Запустите веб-сервис с помощью команды ruby webhook.rb Заполнение JSON будет записано в файл events.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...