{"id":22868513,"url":"https://github.com/datavenueliveobjects/azure-event-hub-using-http-push-of-liveobjects","last_synced_at":"2026-02-28T10:03:09.446Z","repository":{"id":117577840,"uuid":"212613773","full_name":"DatavenueLiveObjects/Azure-Event-Hub-using-http-push-of-LiveObjects","owner":"DatavenueLiveObjects","description":"how to route your Live Objects data stream to an Azure Event Hub. This will enable you to connect the powerful set of features from Live Objects (connectivity, Device Management, decoding, simple event processing) to the rest of your ecosystem on the Azure platform. The key point on Live Objects side is to configure an action policy that will route that data stream to the adequate Azure Event Hub endpoint through Http Push.","archived":false,"fork":false,"pushed_at":"2019-10-03T15:29:31.000Z","size":274,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-31T10:51:19.457Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DatavenueLiveObjects.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-10-03T15:28:30.000Z","updated_at":"2019-10-03T15:29:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"4165352b-d96e-4a8b-a8e0-8ba3aaf199e0","html_url":"https://github.com/DatavenueLiveObjects/Azure-Event-Hub-using-http-push-of-LiveObjects","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/DatavenueLiveObjects/Azure-Event-Hub-using-http-push-of-LiveObjects","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DatavenueLiveObjects%2FAzure-Event-Hub-using-http-push-of-LiveObjects","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DatavenueLiveObjects%2FAzure-Event-Hub-using-http-push-of-LiveObjects/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DatavenueLiveObjects%2FAzure-Event-Hub-using-http-push-of-LiveObjects/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DatavenueLiveObjects%2FAzure-Event-Hub-using-http-push-of-LiveObjects/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DatavenueLiveObjects","download_url":"https://codeload.github.com/DatavenueLiveObjects/Azure-Event-Hub-using-http-push-of-LiveObjects/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DatavenueLiveObjects%2FAzure-Event-Hub-using-http-push-of-LiveObjects/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29929595,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-28T09:58:13.507Z","status":"ssl_error","status_checked_at":"2026-02-28T09:57:57.047Z","response_time":90,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-13T12:35:37.196Z","updated_at":"2026-02-28T10:03:09.410Z","avatar_url":"https://github.com/DatavenueLiveObjects.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Getting started to use Live Objects Http Push to Azure Event Hub # \n\nThis getting started tutorial will describe how to route your Live Objects data stream to an Azure Event Hub. This will enable you to connect the powerful set of features from Live Objects (connectivity, Device Management, decoding, simple event processing) to the rest of your ecosystem on the Azure platform. The key point on Live Objects side is to configure an action policy that will route that data stream to the adequate Azure Event Hub endpoint through Http Push.\n\n## Prerequisite : ##\n\nIn order to implement this tutorial, you will need :\n*\tA Live Objects account\n*\tSufficient rights to use Live Objects Trigger and Actions policies. A \"DISCOVER\" account should be enough.\n*\tA Live Objects api key with (at least) __DATA_W__ and __EVENT_PROCESSING_W__ role\n*\tAn Azure account;\n\n## Setup your Azure Event Hub ##\n\n[Event Hub getting started](https://docs.microsoft.com/fr-fr/azure/event-hubs/event-hubs-quickstart-portal)\n\n## Create your SAS token ##\n\nLive Objects will be seen as a single __event publisher__ from the Azure Event Hub point of view. Thus you will have to create a dedicated Shared Access Signature (SAS) key to identify that publisher. This key will enable to create a SAS token. This token will be passed along the HTTP POST operation, in the Authorization header, when sending an event to the Azure Event Hub.\n\n1) in order to generate SAStoken you can follow the link:  [https://docs.microsoft.com/en-us/rest/api/eventhub/generate-sas-token](https://docs.microsoft.com/en-us/rest/api/eventhub/generate-sas-token)\nIn the function GetSASToken, input parameters “resourceUri”, “keyName”, “key” are required (java example).\n\n![](img/azure1.png)\n \n•\t“resourceUri”: service bus URL, format is [https://{servicebusNamespace}.servicebus.windows.net/{eventHubPath}/messages](https://{servicebusNamespace}.servicebus.windows.net/{eventHubPath}/messages)\no\t{servicebusNamespace}: service bus name, you cloud find on the\n \n ![](img/azure2.png)\n \no\t{eventHubPath}: topic or the queue name in the service bus. If no topic or queue, you should create a new one.\n \n  ![](img/azure3.png)\n \n•\t“keyName”, “key”:\n\n ![](img/azure4.png)\n \n2)\tWhen everything is done, you can check the event status from the portal.\n \n ![](img/azure5.png)\n \n3)\tRegarding your questions on tokens, you can set the token expire time during the creation.\n\nReference :\n*\t[Azure Event Hub security model and Authentication](https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-authentication-and-security-model-overview)\n*\t[Sending an Event](https://docs.microsoft.com/en-us/rest/api/eventhub/send-event)\n\n## Setup your Action Policy ##\n\n```ruby\nPOST https://liveobjects.orange-business.com/api/v0/event2action/actionPolicies\nx-api-key: your-api-key\nContent-Type: application/json\n{\n    \"name\": \"my-push-to-event-hub\",\n    \"enabled\": true,\n    \"triggers\": {\n        \"messageSelector\": {\n            \"origin\": \"data_new\"\n        }\n    },\n    \"actions\": {\n        \"httpPush\": [{\n            \"webhookUrl\": \"https://{servicebusNamespace}.servicebus.windows.net/{eventHubPath}/messages\",\n            \"headers\": {\n                \"Authorization\": [\"SharedAccessSignature sr={URI}\u0026sig={HMAC_SHA256_SIGNATURE}\u0026se={EXPIRATION_TIME}\u0026skn={KEY_NAME}\"]\n            }\n        }]\n    }\n}\n```\n\nIn the previous example you should replace the following placeholders with adequate values :\n*\tsevicebusNamespace\n*\teventHubPath\n*\tAuthorization SAS token\n\n## Test by sending a data ##\n\n```ruby\nPOST https://liveobjects.orange-business.com/api/v0/data/streams/my-stream\nx-api-key: your-api-key\nContent-Type: application/json\n{\n  \"location\": {\n    \"accuracy\": 10,\n    \"alt\": 5.00001,\n    \"lat\": 45.000009,\n    \"lon\": -30.00001,\n    \"provider\": \"GPS\"\n  },\n  \"model\": \"MyModelSettingName\",\n  \"tags\": [\n    \"Motor\",\n    \"Engine\"\n  ],\n  \"value\": {\n    \"hexaFlag001\": \"2F00\",\n    \"temp\": 22,\n    \"pressure\": 36575\n  }\n}\n```\n\n## It's a wrap ##\nThe data should have been received in the event hub.\nTo go further you can read the developer documentation about http push and Triggers and Actions : [https://liveobjects.orange-business.com/doc/html/lo_manual_v2.html#E2A_HTTPPUSHACTION](https://liveobjects.orange-business.com/doc/html/lo_manual_v2.html#E2A_HTTPPUSHACTION)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatavenueliveobjects%2Fazure-event-hub-using-http-push-of-liveobjects","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdatavenueliveobjects%2Fazure-event-hub-using-http-push-of-liveobjects","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatavenueliveobjects%2Fazure-event-hub-using-http-push-of-liveobjects/lists"}