1

我正在使用 Visual Studio Code 和 python。我下载了 Visual Studio Code 的 Azure Functions 扩展并创建了一个本地项目。我编辑了init .py 文件以处理示例遥测消息并提取人数,并添加了代码以发布数字孪生的遥测消息(来自 Python 中的 Azure Digital Twins API 的 SDK)。但是,在我部署该函数并尝试将其连接到 IoT 中心后,Azure 无法在函数应用中找到该函数(请参阅快照)

这是我的代码__init__.py

import logging
import azure.functions as func
from azure.identity import DefaultAzureCredential
from azure.digitaltwins.core import DigitalTwinsClient


def processHubToDTEvents(telemetry_payload):

    url = "https://ADT-instance-xut.api.wcus.digitaltwins.azure.net"
    credential = DefaultAzureCredential()
    service_client = DigitalTwinsClient(url, credential)

    digita_twin_id = "spaceTwin-1"
    service_client.publish_telemetry(
        digita_twin_id,
        telemetry_payload
    )


def main(req: func.HttpRequest) -> func.HttpResponse:
    logging.info('Python HTTP trigger function processed a request.')

    req_body = req.get_json()

    detected = req_body.get("body")
    count = 0
    for obj in detected:
        if obj.get('label') == "person":
            count += 1

    telemetry_payload = '{"Occupancy": ' + str(count) + '}'

    processHubToDTEvents(telemetry_payload)

    return func.HttpResponse(telemetry_payload)

如果有人能解释我如何设置 Azure Function 应用程序,我将不胜感激。提前致谢

4

1 回答 1

0

当您需要 IoT 中心触发函数时,您似乎已经设置了 HTTP 触发函数。有关您需要进行的代码更改和 function.json 更改,请参阅此文档: https ://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-event-iot-trigger?tabs =蟒蛇

于 2021-02-16T23:24:46.210 回答