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/bg/2-farm/lessons/5-migrate-application-to-th.../assignment.md

70 lines
5.8 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-28T11:12:46+00:00",
"source_file": "2-farm/lessons/5-migrate-application-to-the-cloud/assignment.md",
"language_code": "bg"
}
-->
# Добавяне на ръчно управление на релето
## Инструкции
Сървърлес кодът може да бъде задействан от различни неща, включително HTTP заявки. Можете да използвате HTTP тригери, за да добавите ръчно управление на релето, което позволява на някого да включва или изключва релето чрез уеб заявка.
За тази задача трябва да добавите два HTTP тригера към вашето Functions App, за да включвате и изключвате релето, като използвате наученото в този урок за изпращане на команди към устройството.
Няколко съвета:
* Можете да добавите HTTP тригер към съществуващото си Functions App със следната команда:
```sh
func new --name <trigger name> --template "HTTP trigger"
```
Заменете `<trigger name>` с име за вашия HTTP тригер. Използвайте нещо като `relay_on` и `relay_off`.
* HTTP тригерите могат да имат контрол на достъпа. По подразбиране те изискват API ключ, специфичен за функцията, който да бъде предаден с URL адреса, за да се изпълнят. За тази задача можете да премахнете това ограничение, така че всеки да може да изпълнява функцията. За да направите това, актуализирайте настройката `authLevel` в файла `function.json` за HTTP тригерите със следното:
```json
"authLevel": "anonymous"
```
> 💁 Можете да прочетете повече за този контрол на достъпа в [документацията за ключовете за достъп на функциите](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 адреса в браузъра си и натиснете `Enter`, или `Ctrl+клик` (`Cmd+клик` на macOS) върху връзката в терминалния прозорец в VS Code, за да го отворите в браузъра си по подразбиране. Това ще изпълни тригера.
> 💁 Обърнете внимание, че URL адресът съдържа `/api` - HTTP тригерите по подразбиране са в поддомейна `api`.
* Когато разположите Functions App, URL адресът на HTTP тригера ще бъде:
`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 |
---
**Отказ от отговорност**:
Този документ е преведен с помощта на AI услуга за превод [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Не носим отговорност за недоразумения или погрешни интерпретации, произтичащи от използването на този превод.