FIWARE Orion Context Broker подписка не распространяется на сервер-аккумулятор - PullRequest
1 голос
/ 28 января 2020

Я застрял здесь на один день ... Я не уверен, что это проблема Ориона или docker. Я играю с Орионом и несколькими другими компонентами FIWARE в docker -compose. Я следовал инструкции 1 , чтобы попробовать подписку, но она не работает, поскольку сервер-аккумулятор не получает уведомлений об обновлениях.

Я проверял несколько похожих вопросов на StackOverflow и вот 3 возможных проблемы, которые я обнаружил, и мои ситуации.

  1. Может быть проблема с подключением из-за того, что Orion запускает контейнер docker на MacOS и пытается получить доступ к внешнему а cc -server. Моя ситуация: Согласно 2 я пытался изменить URL, указанный в запросе на подписку, с "http://localhost: 1028 / накопить " на "http://host.docker.internal: 1028 / аккумулируют ». Это все еще не работает. Я использую мостовую сеть в своем docker -compose.yml. Я новичок в docker и не уверен, какие другие настройки мне нужно указать для того, чтобы добраться до сервера на локальном хосте из контейнера.

  2. Что-то не так с OCB или подписка. Моя ситуация: как только я отправляю подписку POST (я помещаю подписку в приложение ниже. Предполагается, что Orion отправит уведомление на cc -сервер, как только я обновлю значение самостоятельно определяемого фиктивного датчика), есть ответ HTTP 201, который выглядит правильно. Вход в Orion выглядит следующим образом:

orion_1 | INFO@06:48:35 connectionOperations.cpp[375]: Database Operation Successful (insert: { _id: ObjectId('5e2fd943bcf1cf1869212cfe'), expiration: 1893506400, reference: "http://host.docker.internal:1028/accumulate", custom: false, throttling: 1, servicePath: "/#", description: "A subscription to notify clampPressure change", status: "active", entities: [ { id: "RoboticArm", isPattern: "false", type: "multiSensor", isTypePattern: false } ], attrs: [ "clampPressure" ], metadata: [], blacklist: false, onlyChanged: false, conditions: [ "clampPressure" ], expression: { q: "", mq: "", geometry: "", coords: "", georel: "" }, format: "normalized" })

Если я проверяю GET v2 / subspiptions. Все подписки там показаны "активными". Хотя при обновлении сущности уведомление никогда не достигает cc -сервер. И если я проверяю логи Ориона, там только логи об обновлении сущности. Там нет ничего, связанного со статусом подписки ... Только выше, когда первая подписка POST. Похоже, что Орион не управляет подпиской.

Проблема с аккумулятором-server.py Моя ситуация: я запустил его как 2 , выглядит нормально. Он просто ничего не получает от Ориона. Если я пытаюсь опубликовать что-то через хост, все работает нормально. Я думаю, что проблема скорее связана с Орионом или подключением.

Спасибо за помощь !!! Я полагаю, что это не очень сложная проблема, но я просто не могу решить ее самостоятельно ...

А ниже моя операция POST / v2 / subscription:

curl -v localhost:1026/v2/subscriptions -s -S -H "Content-Type: application/json" -d @- <<EOF
{
  "description": "A subscription to notify clampPressure change",
  "subject": {
    "entities": [
      {
        "id": "RoboticArm",
        "type": "multiSensor"
      }
    ],
    "condition": {
      "attrs": [
        "clampPressure"
      ]
    }
  },
  "notification": {
    "http": {
      "url": "http://host.docker.internal:1028/accumulate"
    },
    "attrs": [
      "clampPressure"
    ]
  },
  "expires": "2030-01-01T14:00:00.00Z",
  "throttling": 1
}
EOF
...