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.
68 lines
5.5 KiB
68 lines
5.5 KiB
<!--
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
{
|
|
"original_hash": "c24b6e4d90501c9199f2ceb6a648a337",
|
|
"translation_date": "2025-08-25T21:34:18+00:00",
|
|
"source_file": "2-farm/lessons/5-migrate-application-to-the-cloud/assignment.md",
|
|
"language_code": "fa"
|
|
}
|
|
-->
|
|
# افزودن کنترل دستی رله
|
|
|
|
## دستورالعملها
|
|
|
|
کد بدون سرور میتواند توسط عوامل مختلفی فعال شود، از جمله درخواستهای HTTP. شما میتوانید از محرکهای HTTP برای افزودن یک کنترل دستی به رله خود استفاده کنید، به طوری که کسی بتواند رله را از طریق یک درخواست وب روشن یا خاموش کند.
|
|
|
|
برای این تمرین، شما باید دو محرک HTTP به برنامه Functions خود اضافه کنید تا رله را روشن و خاموش کنید، و از آنچه در این درس آموختهاید برای ارسال دستورات به دستگاه استفاده کنید.
|
|
|
|
چند نکته:
|
|
|
|
* شما میتوانید یک محرک HTTP به برنامه Functions موجود خود با استفاده از دستور زیر اضافه کنید:
|
|
|
|
```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 خود را به صورت محلی اجرا میکنید، 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 را در مرورگر خود کپی کنید و کلید `return` را فشار دهید، یا با `Ctrl+click` (در macOS `Cmd+click`) روی لینک در پنجره ترمینال در VS Code کلیک کنید تا در مرورگر پیشفرض شما باز شود. این کار محرک را اجرا خواهد کرد.
|
|
|
|
> 💁 توجه کنید که URL شامل `/api` است - محرکهای HTTP به طور پیشفرض در زیر دامنه `api` قرار دارند.
|
|
|
|
* هنگامی که برنامه Functions را منتشر میکنید، URL محرک HTTP به صورت زیر خواهد بود:
|
|
|
|
`https://<functions app name>.azurewebsites.net/api/<trigger name>`
|
|
|
|
که `<functions app name>` نام برنامه Functions شما است و `<trigger name>` نام محرک شما است.
|
|
|
|
## معیارها
|
|
|
|
| معیار | عالی | قابل قبول | نیاز به بهبود |
|
|
| ------ | ----- | ---------- | ------------- |
|
|
| ایجاد محرکهای HTTP | ایجاد دو محرک برای روشن و خاموش کردن رله با نامهای مناسب | ایجاد یک محرک با نام مناسب | قادر به ایجاد هیچ محرکی نبود |
|
|
| کنترل رله از طریق محرکهای HTTP | توانست هر دو محرک را به IoT Hub متصل کند و رله را به درستی کنترل کند | توانست یک محرک را به IoT Hub متصل کند و رله را به درستی کنترل کند | قادر به اتصال محرکها به IoT Hub نبود |
|
|
|
|
**سلب مسئولیت**:
|
|
این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما تلاش میکنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمههای خودکار ممکن است حاوی خطاها یا نادرستیهایی باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، ترجمه حرفهای انسانی توصیه میشود. ما هیچ مسئولیتی در قبال سوءتفاهمها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم. |