簡體   English   中英

Azure 事件中心 - 如何通過 https 從傳感器接收數據?

[英]Azure Event Hub - How to receive data from sensor via https?

我有一個傳感器可以跟蹤進出建築物的人。 在每次有人進出時,傳感器都會通過 HTTPS 將數據發送到我指定的任何 URL 或 IP 地址。 如果我將筆記本電腦設置為監聽傳入流量的網絡服務器,我可以接收數據。

我想要做的是 go 無服務器並使用 Azure 事件中心。 我設置了一個事件中心並通過使用 python 腳本從我的筆記本電腦推送數據來運行測試,我可以成功接收數據。 這是我用來測試的示例代碼; 我正在使用連接字符串進行身份驗證。

import time
import os
import uuid
import datetime
import random
import json

from azure.eventhub import EventHubProducerClient, EventData

# This script simulates the production of events for 10 devices.
devices = []
for x in range(0, 10):
    devices.append(str(uuid.uuid4()))

# Create a producer client to produce and publish events to the event hub.
producer = EventHubProducerClient.from_connection_string(conn_str="My End Point String", eventhub_name="my eventhub name")
for y in range(0,20):    # For each device, produce 20 events. 
    event_data_batch = producer.create_batch() # Create a batch. You will add events to the batch later. 
    for dev in devices:
        # Create a dummy reading.
        reading = {'id': dev, 'timestamp': str(datetime.datetime.utcnow()), 'uv': random.random(), 'temperature': random.randint(70, 100), 'humidity': random.randint(70, 100)}
        s = json.dumps(reading) # Convert the reading into a JSON string.
        event_data_batch.add(EventData(s)) # Add event data to the batch.
    producer.send_batch(event_data_batch) # Send the batch of events to the event hub.

# Close the producer.    
producer.close()

在我的傳感器上,我沒有輸入這兩件事的選項。 我只能選擇輸入 URL/IP。

知道如何設置嗎?

我建議以這種方式移動數據: Sensor > Azure Functions HTTP trigger > Azure Event Hubs

總之,您的傳感器將調用托管在 Azure 函數上的 HTTP 端點,並且 function 將在將傳感器數據轉發到 eventhub 之前對其進行檢查和轉換。

這是有關 HTTP 觸發器的文檔 - https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-http-webhook-trigger?tabs=csharp

這是有關事件中心 output 綁定的文檔 - https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-event-hubs-output?tabs=csharp

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM