إدارة مساحات عمل التعلم الآلي من Microsoft Azure باستخدام Terraform
في هذه المقالة، ستتعلم كيفية إنشاء مساحة عمل التعلم الآلي من Microsoft Azure وإدارتها باستخدام ملفات تكوين Terraform. تمكّنك ملفات التكوين المستندة إلى القوالب الخاصة بـ Terraformمن تحديد موارد Azure وإنشائها وتكوينها بطريقة قابلة للتكرار ويمكن التنبؤ بها. يتتبع Terraform حالة الموارد وهو قادر على تنظيف الموارد وتدميرها.
توصيف Terraform هو مستند يحدد الموارد اللازمة للتوزيع. قد تحدد أيضاً متغيرات التوزيع. يتم استخدام المتغيرات لتوفير قيم الإدخال عند استخدام التكوين.
المتطلبات الأساسية
- اشتراكAzure. إذا لم يكن لديك واحد، فجرّب الإصدار المجاني أو المدفوع من التعلم الآلي من Microsoft Azure من Microsoft Azure.
- إصدار مثبت من Azure CLI.
- تكوين Terraform: اتبع الإرشادات الواردة في هذه المقالة ومقال Terraform وتكوين الوصول إلى Azure.
القيود
يمكنك عند إنشاء مساحة عمل جديدة إما إنشاء الخدمات التي تحتاجها مساحة العمل تلقائياً أو استخدام الخدمات الموجودة. إذا كنت تريد استخدام خدمات موجودة من اشتراك Azure مختلف عن مساحة العمل، فيجب عليك تسجيل مساحة اسم التعلم الآلي من Microsoft Azure في الاشتراك الذي يحتوي على تلك الخدمات. على سبيل المثال، عند إنشاء مساحة عمل في الاشتراك أ يستخدم حساب تخزين من الاشتراك ب، يجب تسجيل مساحة اسم التعلم الآلي من Microsoft Azure في الاشتراك ب قبل أن تتمكن من استخدام حساب التخزين مع مساحة العمل.
موفّر الموارد للتعلم الآلي من Microsoft Azure هو Microsoft.MachineLearningServices. للحصول على معلومات عن كيفية معرفة إذا ما كان مسجلاً وكيفية تسجيله، راجع مقالة موفري الموارد من Azure والأنواع.
هام
وينطبق ذلك فقط على الموارد المتوفرة أثناء إنشاء مساحة العمل؛ حسابات تخزين Azure وAzure Container Register وAzure Key Vault وApplication Insights.
تلميح
يُنشئ مثيل Azure Application Insights عند إنشاء مساحة العمل. يمكنك حذف مثيل Application Insights بعد إنشاء نظام المجموعة إذا كنت تريد ذلك. يؤدي حذفها إلى تقييد المعلومات التي يتم جمعها من مساحة العمل، وقد يزيد ذلك من صعوبة استكشاف المشكلات وإصلاحها. إذا حذفت مثيل Application Insights الذي أنشأته مساحة العمل، فلا يمكنك إعادة إنشائه بدون حذف مساحة العمل وإعادة إنشائها.
لمزيد من المعلومات عن استخدام مثيل Application Insights هذا، راجع مراقبة وجمع البيانات من نقاط نهاية خدمة ويب التعلم الآلي.
قم بتعريف موفر Azure
قم بإنشاء ملف تكوين Terraform الذي يعلن عن موفر Azure:
إنشاء ملف جديد يسمى
main.tf
. إذا كنت تعمل مع Azure Cloud Shell، فاستخدم bash:code main.tf
الصق التعليمة البرمجية التالي في المحرر:
main.tf:
data "azurerm_client_config" "current" {} resource "azurerm_resource_group" "default" { name = "${random_pet.prefix.id}-rg" location = var.location } resource "random_pet" "prefix" { prefix = var.prefix length = 2 } resource "random_integer" "suffix" { min = 10000000 max = 99999999 }
احفظ الملف (<Ctrl>S) واخرج من المحرر (<Ctrl>Q).
قم بتوزيع مساحة عمل
يمكن استخدام تكوينات Terraform التالية لإنشاء مساحة عمل التعلم الآلي. عند إنشاء مساحة عمل التعلم الآلي، هناك حاجة إلى خدمات أخرى متنوعة كاعتماديات. يحدد القالب أيضاً هذه الموارد المرتبطة بمساحة العمل. بناءً على احتياجاتك، يمكنك اختيار استخدام القالب الذي يُنشئ موارد مع اتصال شبكة عامة أو خاصة.
تتطلب بعض الموارد في Azure أسماء فريدة بشكل عام. قبل توزيع مواردك باستخدام القوالب التالية، اضبط المتغير name
على قيمة فريدة.
variables.tf:
variable "environment" {
type = string
description = "Name of the environment"
default = "dev"
}
variable "location" {
type = string
description = "Location of the resources"
default = "eastus"
}
variable "prefix" {
type = string
description = "Prefix of the resource name"
default = "ml"
}
workspace.tf:
# Dependent resources for Azure Machine Learning
resource "azurerm_application_insights" "default" {
name = "${random_pet.prefix.id}-appi"
location = azurerm_resource_group.default.location
resource_group_name = azurerm_resource_group.default.name
application_type = "web"
}
resource "azurerm_key_vault" "default" {
name = "${var.prefix}${var.environment}${random_integer.suffix.result}kv"
location = azurerm_resource_group.default.location
resource_group_name = azurerm_resource_group.default.name
tenant_id = data.azurerm_client_config.current.tenant_id
sku_name = "premium"
purge_protection_enabled = false
}
resource "azurerm_storage_account" "default" {
name = "${var.prefix}${var.environment}${random_integer.suffix.result}st"
location = azurerm_resource_group.default.location
resource_group_name = azurerm_resource_group.default.name
account_tier = "Standard"
account_replication_type = "GRS"
allow_nested_items_to_be_public = false
}
resource "azurerm_container_registry" "default" {
name = "${var.prefix}${var.environment}${random_integer.suffix.result}cr"
location = azurerm_resource_group.default.location
resource_group_name = azurerm_resource_group.default.name
sku = "Premium"
admin_enabled = true
}
# Machine Learning workspace
resource "azurerm_machine_learning_workspace" "default" {
name = "${random_pet.prefix.id}-mlw"
location = azurerm_resource_group.default.location
resource_group_name = azurerm_resource_group.default.name
application_insights_id = azurerm_application_insights.default.id
key_vault_id = azurerm_key_vault.default.id
storage_account_id = azurerm_storage_account.default.id
container_registry_id = azurerm_container_registry.default.id
public_network_access_enabled = true
identity {
type = "SystemAssigned"
}
}
استكشاف الأخطاء وإصلاحها
أخطاء مزود الموارد
عند إنشاء مساحة عمل التعلم الآلي من Microsoft Azure، أو مورد تستخدمه مساحة العمل، قد تتلقى خطأ مشابهًا للرسائل الآتية:
No registered resource provider found for location {location}
The subscription is not registered to use namespace {resource-provider-namespace}
يُسجّل معظم موفري الموارد تلقائياً، ولكن ليس جميعهم. إذا استلمت هذه الرسالة، فأنت بحاجة إلى تسجيل الموفّر المذكور.
يحتوي الجدول التالي على قائمة بموفّري الموارد المطلوبين من التعلم الآلي من Microsoft Azure:
موفر الموارد | سبب الحاجة إليه |
---|---|
Microsoft.MachineLearning | إنشاء مِساحة عمل التعلم الآلي من Azure. |
Microsoft.Storage | يستخدم حساب التخزين في Azure كتخزين افتراضي لمساحة العمل. |
Microsoft.ContainerRegistry | تستخدم مساحة العمل Azure Container Registry لإنشاء صور Docker. |
Microsoft.KeyVault | تستخدم مساحة العمل Azure Key Vault لتخزين البيانات السرية. |
Microsoft.NetApp | دفاتر ملاحظات متكامل على مثيل حساب التعلم الآلي من Microsoft Azure. |
Microsoft.ContainerService | إذا كنت تخطط لتوزيع النماذج المُدربة على خدمات Azure Kubernetes. |
في حال كنت تخطط لاستخدام مفتاح مُدار بواسطة العميل مع التعلم الآلي من Microsoft Azure، فيجب تسجيل موفري الخدمة التاليين:
موفر الموارد | سبب الحاجة إليه |
---|---|
Microsoft.DocumentDB | مثيل Azure CosmosDB الذي يسجل بيانات التعريف لمساحة العمل. |
Microsoft.Search | يوفر البحث في Azure إمكانات الفهرسة لمساحة العمل. |
إذا كنت تخطط لاستخدام شبكة ظاهرية مدارة مع Azure التعلم الآلي، فيجب تسجيل موفر موارد Microsoft.Network. يتم استخدام موفر الموارد هذا بواسطة مساحة العمل عند إنشاء نقاط نهاية خاصة للشبكة الظاهرية المدارة.
للحصول على معلومات بشأن تسجيل موفري الموارد، راجع حل الأخطاء لتسجيل موفر المورد.
الخطوات التالية
لمعرفة المزيد حول دعم Terraform على Azure، راجع Terraform في وثائق Azure.
للحصول على تفاصيل حول موفر Terraform Azure ووحدة التعلم الآلي، راجع Terraform Registry Azure Resource Manager Provider.
للعثور على أمثلة لقوالب "التشغيل السريع" لـ Terraform، راجع قوالب Azure Terraform التشغيل السريع:
- 101: مساحة عمل التعلم الآلي والحوسبة - الحد الأدنى من مجموعة الموارد اللازمة لبدء استخدام Azure التعلم الآلي.
- 201: مساحة عمل التعلم الآلي، والحساب، ومجموعة من مكونات الشبكة لعزل الشبكة - جميع الموارد اللازمة لإنشاء بيئة إنتاج تجريبية للاستخدام مع بيانات HBI.
- 202: مشابه لـ 201، لكن مع خيار جلب مكونات الشبكة الحالية..
- 301: مساحة عمل التعلم الآلي (Secure Hub and Spoke with Firewall).
لمعرفة المزيد حول خيارات تكوين الشبكة، راجع تأمين موارد مساحة عمل التعلم الآلي من Azure باستخدام الشبكات الظاهرية (VNets).
بالنسبة لعمليات التوزيع البديلة المستندة إلى قالب Azure Resource Manager، راجع توزيع الموارد باستخدام قوالب إدارة الموارد وواجهة برمجة تطبيقات REST لمدير الموارد.
للحصول على معلومات حول كيفية إبقاء Azure التعلم الآلي محدثا بأحدث تحديثات الأمان، راجع إدارة الثغرات الأمنية.