You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/zh/2-farm/lessons/5-migrate-application-to-th.../assignment.md

68 lines
3.5 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "c24b6e4d90501c9199f2ceb6a648a337",
"translation_date": "2025-08-24T22:27:32+00:00",
"source_file": "2-farm/lessons/5-migrate-application-to-the-cloud/assignment.md",
"language_code": "zh"
}
-->
# 添加手动继电器控制
## 说明
无服务器代码可以由多种方式触发,包括 HTTP 请求。你可以使用 HTTP 触发器为继电器控制添加手动覆盖功能,从而允许通过网页请求来打开或关闭继电器。
在本任务中,你需要为你的 Functions App 添加两个 HTTP 触发器,用于打开和关闭继电器,复用本课中学到的知识向设备发送命令。
一些提示:
* 你可以使用以下命令为现有的 Functions App 添加一个 HTTP 触发器:
```sh
func new --name <trigger name> --template "HTTP trigger"
```
`<trigger name>` 替换为你的 HTTP 触发器的名称。可以使用类似 `relay_on``relay_off` 的名称。
* HTTP 触发器可以设置访问控制。默认情况下,它们需要一个特定于函数的 API 密钥随 URL 一起传递才能运行。对于本任务,你可以移除此限制,以便任何人都可以运行该函数。为此,请在 HTTP 触发器的 `function.json` 文件中将 `authLevel` 设置更新为以下内容:
```json
"authLevel": "anonymous"
```
> 💁 你可以在 [Function access keys documentation](https://docs.microsoft.com/azure/azure-functions/functions-bindings-http-webhook-trigger?WT.mc_id=academic-17441-jabenn#authorization-keys) 中阅读更多关于此访问控制的信息。
* HTTP 触发器默认支持 GET 和 POST 请求。这意味着你可以使用网页浏览器调用它们——网页浏览器会发出 GET 请求。
当你在本地运行 Functions App 时,你会看到触发器的 URL
```output
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 粘贴到浏览器中并按下 `回车`,或者在 VS Code 的终端窗口中 `Ctrl+点击`macOS 上为 `Cmd+点击`)链接以在默认浏览器中打开。这将运行触发器。
> 💁 注意 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 触发器 | 创建了两个用于打开和关闭继电器的触发器,并使用了合适的名称 | 创建了一个具有合适名称的触发器 | 未能创建任何触发器 |
| 从 HTTP 触发器控制继电器 | 能够将两个触发器连接到 IoT Hub 并正确控制继电器 | 能够将一个触发器连接到 IoT Hub 并正确控制继电器 | 未能将触发器连接到 IoT Hub |
**免责声明**
本文档使用AI翻译服务 [Co-op Translator](https://github.com/Azure/co-op-translator) 进行翻译。尽管我们努力确保翻译的准确性,但请注意,自动翻译可能包含错误或不准确之处。应以原文档的原始语言版本为权威来源。对于关键信息,建议使用专业人工翻译。我们对于因使用此翻译而引起的任何误解或误读不承担责任。