Определение и реализация триггера веб-подключения Microsoft Flow Custom Connector: 404 не найдено после создания потока - PullRequest
0 голосов
/ 03 июля 2019

Я пытаюсь создать пользовательский соединитель для моего API в Microsoft Flow, чтобы пользователи могли запускать потоки на основе реализации webhook.Часть аутентификации, кажется, работает правильно (я могу создавать соединения).После создания потока с использованием моего пользовательского триггера он никогда не запускается.При проверке данных с моей стороны кажется, что Flow не смог правильно зарегистрировать подписку .
Если я перейду на страницу управления для потока, я получу следующее сообщение об ошибке.There's a problem with the flow's trigger screenshot
Когда я нажимаю исправить триггер, я получаю следующие данные not found error, где параметр Id соответствует идентификатору ресурса, на который мы пытаемся подписаться.
Вот определение триггера:

{
"/AlertRules/{id}/webhooks": {
      "x-ms-notification-content": {
        "schema": {
          "type": "object",
          "properties": {
            "Title": {
              "type": "string",
              "description": "Title"
            },
            "Text": {
              "type": "string",
              "description": "Text"
            },
            "Data": {
              "type": "array",
              "items": {
                "$ref": "#/definitions/DataApi.Models.AlertEvent"
              },
              "description": "Data"
            }
          }
        },
        "description": ""
      },
      "post": {
        "responses": {
          "201": {
            "description": "Created",
            "schema": {
                "type": "string"
            }
          }
        },
        "x-ms-trigger": "single",
        "operationId": "NewAlertEvent",
        "summary": "When a new Alert Event is created or updated",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "type": "string",
            "x-ms-visibility": "important",
            "x-ms-dynamic-values": {
              "operationId": "AlertRules.AlertRule.ListAlertRule",
              "value-path": "Id",
              "value-collection": "value",
              "value-title": "Description"
            }
          },
          {
            "name": "body",
            "in": "body",
            "required": false,
            "schema": {
              "type": "string",
              "x-ms-visibility": "internal",
              "title": "",
              "x-ms-notification-url": true
            },
            "x-ms-visibility": "internal"
          }
        ]
      }
}

Описание моей операции удаления

{
"/AlertRuleSubscriptions({Id})": {
"delete": {
        "tags": [
          "AlertRuleSubscriptions.AlertRuleSubscription"
        ],
        "summary": "Delete entity from AlertRuleSubscriptions",
        "operationId": "AlertRuleSubscriptions.AlertRuleSubscription.DeleteAlertRuleSubscription",
        "parameters": [
          {
            "in": "path",
            "name": "Id",
            "description": "key: Id",
            "required": true,
            "type": "string",
            "format": "uuid",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
            "x-ms-docs-key-type": "AlertRuleSubscription"
          },
          {
            "in": "header",
            "name": "If-Match",
            "description": "ETag",
            "type": "string"
          }
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "default": {
            "$ref": "#/responses/error"
          }
        },
        "x-ms-docs-operation-type": "operation"
      }
}
}

И моя операция post отвечает с заголовком Location, который соответствует форматуОперация удаления описана выше.
Мои вопросы:

  • Чего не хватает в моей декларации триггера?
  • Как получить более подробную информацию о создании подписки и ошибке Microsoft Flowгенерирует?

1 Ответ

0 голосов
/ 11 июля 2019

После внутренних обсуждений с Microsoft мы обнаружили две основные проблемы.
Сначала я обновил параметр тела запроса POST, чтобы создать для него подписку.


       {
        "name": "body",
        "in": "body",
        "required": false,
        "schema": {
         "type": "object",
         "properties": {
          "callbackUrl": {
           "type": "string",
           "required": true,
           "description": "callbackUrl",
           "x-ms-notification-url": true,
           "x-ms-visibility": "internal"
          }
         }
        }
       }

Это связано с тем, что определения соединителей не поддерживают отправку URL-адреса обратного вызова в теле без использования форматирования JSON, а также потому, что Flow был реализован с использованием спецификации обратного вызова Open API .

Во-вторых, я обновил свой API для поддержки спецификации, упомянутой выше.

...