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.
70 lines
4.9 KiB
70 lines
4.9 KiB
<!--
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
{
|
|
"original_hash": "c24b6e4d90501c9199f2ceb6a648a337",
|
|
"translation_date": "2025-08-26T22:41:19+00:00",
|
|
"source_file": "2-farm/lessons/5-migrate-application-to-the-cloud/assignment.md",
|
|
"language_code": "ar"
|
|
}
|
|
-->
|
|
# إضافة التحكم اليدوي في المرحل
|
|
|
|
## التعليمات
|
|
|
|
يمكن تشغيل الكود الخالي من الخوادم بواسطة العديد من الأشياء المختلفة، بما في ذلك طلبات 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` (`Cmd+click` على macOS) على الرابط في نافذة الطرفية في 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). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الموثوق. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. |