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