添加手動繼電器控制
指示
無伺服器代碼可以由許多不同的事情觸發,包括 HTTP 請求。您可以使用 HTTP 觸發器為您的繼電器控制添加手動覆蓋,允許某人通過網絡請求打開或關閉繼電器。
在這個作業中,您需要向您的 Functions App 添加兩個 HTTP 觸發器來打開和關閉繼電器,重用您從本課中學到的知識來向設備發送命令。
一些提示:
-
您可以使用以下命令向現有的 Functions App 添加 HTTP 觸發器:
func new --name <trigger name> --template "HTTP trigger"
將
<trigger name>
替換為您的 HTTP 觸發器的名稱。使用類似relay_on
和relay_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 |