نشر Azure Blob Storage على وحدة IoT Edge على جهازك
ينطبق على: IoT Edge 1.5 IoT Edge 1.4
هام
IoT Edge 1.5 LTS وIoT Edge 1.4 LTS هي إصدارات مدعومة. IoT Edge 1.4 LTS هو نهاية العمر الافتراضي في 12 نوفمبر 2024. إذا كنت تستخدم إصدارا سابقا، فشاهد تحديث IoT Edge.
هناك عدة طرق لتوزيع وحدات نمطية إلى جهاز IoT Edge وجميعها تعمل لتخزين Azure Blob على وحدات IoT Edge النمطية. أبسط أسلوبين هما استخدام مدخل Microsoft Azure أو قوالب Visual Studio Code.
المتطلبات الأساسية
مركز IoT في اشتِراك Azure الخاص بك.
جهاز IoT Edge.
إذا لم يكن لديك جهاز IoT Edge تم إعداده، يمكنك إنشاء جهاز في جهاز Azure الظاهري. اتبع الخطوات الواردة في إحدى مقالات التشغيل السريع لإنشاء جهاز Linux ظاهري أو إنشاء جهاز Windows ظاهري.
ملحق Azure IoT Edge . أدوات Azure IoT Edge لملحق Visual Studio Code في وضع الصيانة.
ملحق Azure IoT Hub في حالة النشر من Visual Studio Code.
النشر من مدخل Microsoft Azure
يرشدك مدخل Azure خلال إنشاء بيان توزيع ودفع النشر إلى جهاز IoT Edge.
تحديد جهازك
- سجل الدخول إلى مدخل Microsoft Azure والانتقال إلى IoT hub الخاص بك.
- حدد الأجهزة ضمن قائمة إدارة الأجهزة.
- حدد جهاز IoT Edge الهدف من القائمة.
- حدد Set modules.
تكوين بيان التوزيع
بيان التوزيع هو مستند JSON يصف الوحدات النمطية التي سيتم توزيعها، وكيفية تدفق البيانات بين الوحدات، والخصائص المرغوبة لتوائم الوحدة النمطية. يحتوي مدخل Azure على معالج يرشدك خلال إنشاء بيان توزيع. يحتوي على ثلاث خطوات منظمة في علامات تبويب: الوحدات النمطية والمسارات والمراجعة + الإنشاء.
إضافة وحدات نمطية
في قسم IoT Edge Modules من الصفحة، حدد القائمة المنسدلة Add وحدد IoT Edge Module لعرض صفحة Add IoT Edge Module .
في علامة التبويب Settings ، قم بتوفير اسم للوحدة النمطية ثم حدد URI لصورة الحاوية:
- اسم وحدة IoT Edge النمطية:
azureblobstorageoniotedge
- Image URI:
mcr.microsoft.com/azure-blob-storage:latest
لا تحدد إضافة حتى تحدد قيما في علامات التبويب إعدادات الوحدة النمطية وخيارات إنشاء الحاوية وإعدادات الوحدة النمطية المزدوجة كما هو موضح في هذا الإجراء.
هام
يكون Azure IoT Edge حساسا لحالة الأحرف عند إجراء مكالمات إلى الوحدات النمطية، ويتم أيضا تعيين Storage SDK افتراضيا إلى أحرف صغيرة. يساعد تغيير الاسم إلى أحرف صغيرة على ضمان عدم مقاطعة اتصالاتك ب Azure Blob Storage على وحدة IoT Edge.
- اسم وحدة IoT Edge النمطية:
افتح علامة التبويب Container Create Options.
انسخ والصق JSON التالي في المربع، لتوفير معلومات حساب التخزين وتركيب للتخزين على جهازك.
{ "Env":[ "LOCAL_STORAGE_ACCOUNT_NAME=<local storage account name>", "LOCAL_STORAGE_ACCOUNT_KEY=<local storage account key>" ], "HostConfig":{ "Binds":[ "<mount>" ], "PortBindings":{ "11002/tcp":[{"HostPort":"11002"}] } } }
قم بتحديث JSON الذي نسخته إلى خيارات إنشاء الحاوية بالمعلومات التالية:
استبدل
<local storage account name>
باسم يمكنك تذكره. يجب أن تتكون أسماء الحسابات من 3 إلى 24 حرفاً، مع أحرف صغيرة وأرقام. بدون مسافات.استبدل
<local storage account key>
بمفتاح base64 64 بايت. يمكنك إنشاء مفتاح بأدوات مثل GeneratePlus. يمكنك استخدام بيانات الاعتماد هذه للوصول إلى تخزين كائن ثنائي كبير الحجم من وحدات نمطية أخرى.استبدل
<mount>
وفقاً لنظام تشغيل الحاوية. قم بتوفير اسم وحدة تخزين أو المسار المطلق إلى دليل موجود على جهاز IoT Edge حيث تخزن وحدة blob بياناتها. يعين تحميل التخزين موقعا على جهازك توفره لموقع معين في الوحدة النمطية.
بالنسبة لحاويات Linux، يكون التنسيق هو <مسار التخزين أو وحدة التخزين>:/blobroot. على سبيل المثال:
- استخدام تحميل وحدة التخزين:
my-volume:/blobroot
- استخدم تحميل الربط:
/srv/containerdata:/blobroot
. تأكد من اتباع الخطوات لمنح الدليل حق الوصول إلى مستخدم الحاوية
هام
لا تقم بتغيير النصف الثاني من قيمة تحميل التخزين، والذي يشير إلى موقع معين في وحدة Blob Storage على IoT Edge. يجب أن ينتهي تحميل التخزين دائما ب :/blobroot لحاويات Linux.
لا يزيل IoT Edge وحدات التخزين المرفقة بحاويات الوحدة النمطية. هذا السلوك حسب التصميم، لأنه يسمح باستمرار البيانات عبر مثيلات الحاوية مثل سيناريوهات الترقية. ومع ذلك، إذا تركت وحدات التخزين هذه غير مستخدمة، فقد يؤدي ذلك إلى استنفاد مساحة القرص وأخطاء النظام اللاحقة. إذا كنت تستخدم وحدات تخزين docker في السيناريو الخاص بك، فإننا نشجعك على استخدام أدوات docker مثل تقليم وحدة تخزين docker وd docker volume rm لإزالة وحدات التخزين غير المستخدمة، خاصة لسيناريوهات الإنتاج.
في علامة التبويب إعدادات الوحدة النمطية المزدوجة ، انسخ JSON التالي والصقه في المربع.
{ "deviceAutoDeleteProperties": { "deleteOn": <true, false>, "deleteAfterMinutes": <timeToLiveInMinutes>, "retainWhileUploading": <true,false> }, "deviceToCloudUploadProperties": { "uploadOn": <true, false>, "uploadOrder": "<NewestFirst, OldestFirst>", "cloudStorageConnectionString": "DefaultEndpointsProtocol=https;AccountName=<your Azure Storage Account Name>;AccountKey=<your Azure Storage Account Key>; EndpointSuffix=<your end point suffix>", "storageContainersForUpload": { "<source container name1>": { "target": "<your-target-container-name>" } }, "deleteAfterUpload": <true,false> } }
قم بتكوين كل خاصية بقيمة مناسبة، كما هو موضح من قبل العناصر النائبة. إذا كنت تستخدم جهاز محاكاة IoT Edge، فقم بتعيين القيم إلى متغيرات البيئة ذات الصلة لهذه الخصائص كما هو موضح بواسطة deviceToCloudUploadProperties وdeviceAutoDeleteProperties.
تلميح
يحتوي اسم الحاوية على
target
قيود تسمية، على سبيل المثال استخدام$
بادئة غير معتمد. لمشاهدة كافة القيود، اعرض أسماء الحاويات.إشعار
إذا كان هدف الحاوية غير مسمى أو خال داخل
storageContainersForUpload
، تعيين اسم افتراضي للهدف. إذا كنت ترغب في إيقاف التحميل إلى حاوية، يجب إزالتها تماما منstorageContainersForUpload
. لمزيد من المعلومات، راجعdeviceToCloudUploadProperties
قسم تخزين البيانات على الحافة باستخدام Azure Blob Storage على IoT Edge.للحصول على معلومات حول تكوين deviceToCloudUploadProperties وdeviceAutoDeleteProperties بعد نشر الوحدة النمطية الخاصة بك، راجع تحرير الوحدة النمطية المزدوجة. لمزيد من المعلومات حول الخصائص المطلوبة، راجع تعريف الخصائص المطلوبة أو تحديثها.
حدد إضافة.
انقر فوق Next: Routes للمتابعة إلى قسم المسارات.
تحديد المسارات
احتفظ بالمسارات الافتراضية وحدد Next: Review + create للمتابعة إلى قسم المراجعة.
مراجعة التوزيع
يعرض لك قسم المراجعة بيان توزيع JSON الذي تم إنشاؤه بناءً على اختياراتك في القسمين السابقين. هناك أيضا وحدتان تم الإعلان عن عدم إضافتهما: $edgeAgent $edgeHub. تشكل هاتان الوحدتان وقت تشغيل IoT Edge وهي الإعدادات الافتراضية المطلوبة في كل عملية نشر.
راجع معلومات النشر، ثم حدد إنشاء.
التحقق من النشر
بعد إنشاء النشر، يمكنك العودة إلى صفحة الأجهزة في مركز IoT الخاص بك.
- حدد IoT Edge deviceالذي استهدفته بالتوزيع لفتح تفاصيله.
- في تفاصيل الجهاز، تحقق من إدراج وحدة تخزين الكائن الثنائي كبير الحجم على أنها محددة في النشر وتم الإبلاغ عنها بواسطة الجهاز.
قد يستغرق الأمر بضع لحظات حتى تبدأ الوحدة النمطية على الجهاز ثم يتم الإبلاغ عنها مرة أخرى إلى IoT Hub. قم بتحديث الصفحة لمشاهدة حالة محدثة.
النشر من Visual Studio Code
يوفر Azure IoT Edge قوالب في Visual Studio Code لمساعدتك في تطوير حلول الحافة. استخدم الخطوات التالية لإنشاء حل IoT Edge جديد مع وحدة تخزين كائن ثنائي كبير الحجم وتكوين بيان النشر.
هام
ملحق Azure IoT Edge Visual Studio Code في وضع الصيانة.
حدد View>Command Palette.
في لوحة الأوامر، أدخل الأمر Azure IoT Edge: New IoT Edge solution وقم بتشغيله.
اتبع المطالبات في لوح الأوامر لإنشاء الحل الخاص بك.
الحقل القيمة حدد مجلدًا اختر الموقع على جهاز التطوير الخاص بك ل Visual Studio Code لإنشاء ملفات الحل. تقديم اسم حل أدخل اسمًا وصفيًّا للحل الذي تستخدمه أو اقبل EdgeSolution الافتراضي. تحديد قالب الوحدة النمطية اختر وحدة نمطية موجودة (أدخل عنوان URL للصورة الكاملة). تقديم اسم وحدة نمطية أدخل اسما بأحرف صغيرة لوحدتك النمطية، مثل azureblobstorageoniotedge.
من المهم استخدام اسم بأحرف صغيرة ل Azure Blob Storage على وحدة IoT Edge. IoT Edge حساس لحالة الأحرف عند الإشارة إلى الوحدات النمطية، ويتم تعيين Storage SDK افتراضيا إلى أحرف صغيرة.توفير صورة Docker للوحدة النمطية توفير URI للصورة: mcr.microsoft.com/azure-blob-storage:latest تقوم Visual Studio التعليمات البرمجية بأخذ المعلومات التي قدمتها، وتنشئ حل IoT Edge، ثم تقوم بتحميله في نافذة جديدة. ينشئ قالب الحل قالب بيان نشر يتضمن صورة وحدة تخزين كائن ثنائي كبير الحجم، ولكنك تحتاج إلى تكوين خيارات إنشاء الوحدة النمطية.
افتح deployment.template.json في مساحة عمل الحل الجديدة وابحث عن قسم الوحدات النمطية. قم بإجراء تغييرات التكوين التالية:
انسخ التعليمات البرمجية التالية والصقها في
createOptions
الحقل لوحدة تخزين الكائن الثنائي كبير الحجم:```json "Env":[ "LOCAL_STORAGE_ACCOUNT_NAME=<local storage account name>", "LOCAL_STORAGE_ACCOUNT_KEY=<local storage account key>" ], "HostConfig":{ "Binds": ["<mount>"], "PortBindings":{ "11002/tcp": [{"HostPort":"11002"}] } }
استبدل
<local storage account name>
باسم يمكنك تذكره. يجب أن تتكون أسماء الحسابات من 3 إلى 24 حرفاً، مع أحرف صغيرة وأرقام. بدون مسافات.استبدل
<local storage account key>
بمفتاح base64 64 بايت. يمكنك إنشاء مفتاح بأدوات مثل GeneratePlus. يمكنك استخدام بيانات الاعتماد هذه للوصول إلى تخزين كائن ثنائي كبير الحجم من وحدات نمطية أخرى.استبدل
<mount>
وفقاً لنظام تشغيل الحاوية. قم بتوفير اسم وحدة تخزين أو المسار المطلق إلى دليل على جهاز IoT Edge حيث تريد أن تقوم وحدة blob بتخزين بياناتها. يعين تحميل التخزين موقعا على جهازك توفره لموقع معين في الوحدة النمطية.بالنسبة لحاويات Linux، يكون التنسيق هو <مسار التخزين أو وحدة التخزين>:/blobroot. على سبيل المثال:
- استخدام تحميل وحدة التخزين:
my-volume:/blobroot
- استخدم تحميل الربط:
/srv/containerdata:/blobroot
. تأكد من اتباع الخطوات لمنح الدليل حق الوصول إلى مستخدم الحاوية
هام
لا تقم بتغيير النصف الثاني من قيمة تحميل التخزين، والذي يشير إلى موقع معين في وحدة Blob Storage على IoT Edge. يجب أن ينتهي تحميل التخزين دائما ب :/blobroot لحاويات Linux.
لا يزيل IoT Edge وحدات التخزين المرفقة بحاويات الوحدة النمطية. هذا السلوك حسب التصميم، لأنه يسمح باستمرار البيانات عبر مثيلات الحاوية مثل سيناريوهات الترقية. ومع ذلك، إذا تركت وحدات التخزين هذه غير مستخدمة، فقد يؤدي ذلك إلى استنفاد مساحة القرص وأخطاء النظام اللاحقة. إذا كنت تستخدم وحدات تخزين docker في السيناريو الخاص بك، فإننا نشجعك على استخدام أدوات docker مثل تقليم وحدة تخزين docker وd docker volume rm لإزالة وحدات التخزين غير المستخدمة، خاصة لسيناريوهات الإنتاج.
- استخدام تحميل وحدة التخزين:
تكوين deviceToCloudUploadProperties وdeviceAutoDeleteProperties للوحدة النمطية الخاصة بك عن طريق إضافة JSON التالي إلى ملف deployment.template.json. قم بتكوين كل خاصية بقيمة مناسبة واحفظ الملف. إذا كنت تستخدم جهاز محاكاة IoT Edge، فقم بتعيين القيم إلى متغيرات البيئة ذات الصلة لهذه الخصائص، والتي يمكنك العثور عليها في قسم الشرح من deviceToCloudUploadProperties وdeviceAutoDeleteProperties
"<your azureblobstorageoniotedge module name>":{ "properties.desired": { "deviceAutoDeleteProperties": { "deleteOn": <true, false>, "deleteAfterMinutes": <timeToLiveInMinutes>, "retainWhileUploading": <true, false> }, "deviceToCloudUploadProperties": { "uploadOn": <true, false>, "uploadOrder": "<NewestFirst, OldestFirst>", "cloudStorageConnectionString": "DefaultEndpointsProtocol=https;AccountName=<your Azure Storage Account Name>;AccountKey=<your Azure Storage Account Key>;EndpointSuffix=<your end point suffix>", "storageContainersForUpload": { "<source container name1>": { "target": "<target container name1>" } }, "deleteAfterUpload": <true, false> } } }
للحصول على معلومات حول تكوين deviceToCloudUploadProperties وdeviceAutoDeleteProperties بعد نشر الوحدة النمطية الخاصة بك، راجع تحرير الوحدة النمطية المزدوجة. لمزيد من المعلومات حول خيارات إنشاء الحاوية، وإعادة تشغيل النهج، والحالة المطلوبة، راجع خصائص EdgeAgent المطلوبة.
احفظ ملف deployment.template.js.
انقر بزر الماوس الأيمن فوق deployment.template.json وحدد إنشاء بيان توزيع IoT Edge.
يأخذ Visual Studio Code المعلومات التي قدمتها في deployment.template.json ويستخدمها لإنشاء ملف بيان نشر جديد. يتم إنشاء بيان النشر في مجلد تكوين جديد في مساحة عمل الحل. بمجرد أن يكون لديك هذا الملف، يمكنك اتباع الخطوات الواردة في نشر وحدات Azure IoT Edge النمطية باستخدام Azure CLI 2.0.
نشر مثيلات وحدة نمطية متعددة
إذا كنت ترغب في نشر مثيلات متعددة من Azure Blob Storage على وحدة IoT Edge، تحتاج إلى توفير مسار تخزين مختلف وتغيير HostPort
القيمة التي تربطها الوحدة النمطية. تعرض وحدات تخزين blob دائما المنفذ 11002 في الحاوية، ولكن يمكنك تعريف المنفذ الذي يرتبط به على المضيف.
تحرير خيارات إنشاء الحاوية (في مدخل Microsoft Azure) أو حقل createOptions (في ملف deployment.template.json في Visual Studio Code) لتغيير HostPort
القيمة:
"PortBindings":{
"11002/tcp": [{"HostPort":"<port number>"}]
}
عند الاتصال بوحدات تخزين blob إضافية، قم بتغيير نقطة النهاية للإشارة إلى منفذ المضيف المحدث.
تكوين دعم الوكيل
إذا كانت مؤسستك تستخدم خادم وكيل، فأنت بحاجة إلى تكوين دعم الوكيل لوحدات وقت تشغيل edgeAgent وedgeHub. تتضمن هذه العملية مهمتين:
- تكوين البرامج الخفية لوقت التشغيل وعامل IoT Edge على الجهاز.
- تعيين متغير البيئة HTTPS_PROXY للوحدات النمطية في ملف JSON لبيان التوزيع.
يتم وصف هذه العملية في تكوين جهاز IoT Edge للاتصال من خلال خادم وكيل.
بالإضافة إلى ذلك، تتطلب وحدة تخزين blob أيضا إعداد HTTPS_PROXY في ملف نشر البيان. يمكنك تحرير ملف بيان النشر مباشرة، أو استخدام مدخل Microsoft Azure.
انتقل إلى مركز IoT في مدخل Microsoft Azure وحدد الأجهزة ضمن قائمة إدارة الأجهزة
حدد الجهاز الذي يحتوي على الوحدة النمطية للتكوين.
حدد Set modules.
في قسم IoT Edge Modules من الصفحة، حدد وحدة تخزين blob.
في صفحة تحديث وحدة IoT Edge، حدد علامة التبويب متغيرات البيئة.
أضف
HTTPS_PROXY
للاسم وعنوان URL الوكيل للقيمة.حدد تحديث، ثم مراجعة + إنشاء.
راجع إضافة الوكيل إلى الوحدة النمطية في بيان النشر وحدد إنشاء.
تحقق من الإعداد عن طريق تحديد الوحدة النمطية من صفحة تفاصيل الجهاز، وفي الجزء السفلي من صفحة تفاصيل وحدات IoT Edge حدد علامة التبويب متغيرات البيئة.
الخطوات التالية
تعرف على المزيد حول Azure Blob Storage على IoT Edge.
لمزيد من المعلومات حول كيفية عمل بيان النشر وكيفية إنشائها، راجع فهم كيفية استخدام وحدات IoT Edge وتكوينها وإعادة استخدامها.