跳至主要内容

添加手動繼電器控制

指示

無伺服器代碼可以由許多不同的事情觸發,包括 HTTP 請求。您可以使用 HTTP 觸發器為您的繼電器控制添加手動覆蓋,允許某人通過網絡請求打開或關閉繼電器。

在這個作業中,您需要向您的 Functions App 添加兩個 HTTP 觸發器來打開和關閉繼電器,重用您從本課中學到的知識來向設備發送命令。

一些提示:

  • 您可以使用以下命令向現有的 Functions App 添加 HTTP 觸發器:

    func new --name <trigger name> --template "HTTP trigger"

    <trigger name> 替換為您的 HTTP 觸發器的名稱。使用類似 relay_onrelay_off 的名稱

  • HTTP 觸發器可以有訪問控制。默認情況下,它們需要一個特定於函數的 API 密鑰與 URL 一起傳遞才能運行。對於這個作業,您可以刪除此限制,以便任何人都可以運行該函數。為此,請將 HTTP 觸發器的 function.json 文件中的 authLevel 設置更新為以下內容:

    "authLevel": "anonymous"

    💁 您可以在 Function 訪問密鑰文檔 中閱讀有關此訪問控制的更多信息。

  • HTTP 觸發器默認支持 GET 和 POST 請求。這意味著您可以使用網絡瀏覽器調用它們 - 網絡瀏覽器發出 GET 請求。

    當您在本地運行您的 Functions App 時,您將看到觸發器的 URL:

    Functions:

    relay_off: [GET,POST] http://localhost:7071/api/relay_off

    relay_on: [GET,POST] http://localhost:7071/api/relay_on

    iot-hub-trigger: eventHubTrigger

    將 URL 粘貼到您的瀏覽器中並按 return,或在 VS Code 的終端窗口中 Ctrl+click(在 macOS 上為 Cmd+click)鏈接以在默認瀏覽器中打開它。這將運行觸發器。

    💁 請注意,URL 中有 /api - HTTP 觸發器默認位於 api 子域中。

  • 當您部署 Functions App 時,HTTP 觸發器 URL 將是:

    https://<functions app name>.azurewebsites.net/api/<trigger name>

    其中 <functions app name> 是您的 Functions App 的名稱,<trigger name> 是您的觸發器的名稱。

評分標準

標準優秀合格需要改進
創建 HTTP 觸發器創建了 2 個觸發器來打開和關閉繼電器,並且名稱適當創建了一個名稱適當的觸發器無法創建任何觸發器
從 HTTP 觸發器控制繼電器能夠將兩個觸發器連接到 IoT Hub 並適當地控制繼電器能夠將一個觸發器連接到 IoT Hub 並適當地控制繼電器無法將觸發器連接到 IoT Hub