إدارة مساحات عمل التعلم الآلي من Microsoft Azure باستخدام Terraform

في هذه المقالة، ستتعلم كيفية إنشاء مساحة عمل التعلم الآلي من Microsoft Azure وإدارتها باستخدام ملفات تكوين Terraform. تمكّنك ملفات التكوين المستندة إلى القوالب الخاصة بـ Terraformمن تحديد موارد Azure وإنشائها وتكوينها بطريقة قابلة للتكرار ويمكن التنبؤ بها. يتتبع Terraform حالة الموارد وهو قادر على تنظيف الموارد وتدميرها.

توصيف Terraform هو مستند يحدد الموارد اللازمة للتوزيع. قد تحدد أيضاً متغيرات التوزيع. يتم استخدام المتغيرات لتوفير قيم الإدخال عند استخدام التكوين.

المتطلبات الأساسية

التقييدات

  • يمكنك عند إنشاء مساحة عمل جديدة إما إنشاء الخدمات التي تحتاجها مساحة العمل تلقائياً أو استخدام الخدمات الموجودة. إذا كنت تريد استخدام خدمات موجودة من اشتراك 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:

  1. إنشاء ملف جديد يسمى main.tf. إذا كنت تعمل مع Azure Cloud Shell، فاستخدم bash:

    code main.tf
    
  2. الصق التعليمة البرمجية التالي في المحرر:

    main.tf:

    terraform {
      required_version = ">=1.0"
    
      required_providers {
        azurerm = {
          source  = "hashicorp/azurerm"
          version = "=2.76.0"
        }
      }
    }
    
    provider "azurerm" {
      features {}
    }
    
    data "azurerm_client_config" "current" {}
    
    resource "azurerm_resource_group" "default" {
      name     = "rg-${var.name}-${var.environment}"
      location = var.location
    }
    
  3. احفظ الملف (<Ctrl>S) واخرج من المحرر (<Ctrl>Q).

قم بتوزيع مساحة عمل

يمكن استخدام تكوينات Terraform التالية لإنشاء مساحة عمل التعلم الآلي. عند إنشاء مساحة عمل التعلم الآلي، هناك حاجة إلى خدمات أخرى متنوعة كاعتماديات. يحدد القالب أيضاً هذه الموارد المرتبطة بمساحة العمل. بناءً على احتياجاتك، يمكنك اختيار استخدام القالب الذي يُنشئ موارد مع اتصال شبكة عامة أو خاصة.

تتطلب بعض الموارد في Azure أسماء فريدة بشكل عام. قبل توزيع مواردك باستخدام القوالب التالية، اضبط المتغير name على قيمة فريدة.

variables.tf:

variable "name" {
  type        = string
  description = "Name of the deployment"
}

variable "environment" {
  type        = string
  description = "Name of the environment"
  default     = "dev"
}

variable "location" {
  type        = string
  description = "Location of the resources"
  default     = "East US"
}

workspace.tf:

# Dependent resources for Azure Machine Learning
resource "azurerm_application_insights" "default" {
  name                = "appi-${var.name}-${var.environment}"
  location            = azurerm_resource_group.default.location
  resource_group_name = azurerm_resource_group.default.name
  application_type    = "web"
}

resource "azurerm_key_vault" "default" {
  name                     = "kv-${var.name}-${var.environment}"
  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                     = "st${var.name}${var.environment}"
  location                 = azurerm_resource_group.default.location
  resource_group_name      = azurerm_resource_group.default.name
  account_tier             = "Standard"
  account_replication_type = "GRS"
}

resource "azurerm_container_registry" "default" {
  name                = "cr${var.name}${var.environment}"
  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                    = "mlw-${var.name}-${var.environment}"
  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

  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.Notebooks/NotebookProxies دفاتر ملاحظات متكامل على مثيل حساب التعلم الآلي من Microsoft Azure.
Microsoft.ContainerService إذا كنت تخطط لتوزيع النماذج المُدربة على خدمات Azure Kubernetes.

في حال كنت تخطط لاستخدام مفتاح مُدار بواسطة العميل مع التعلم الآلي من Microsoft Azure، فيجب تسجيل موفري الخدمة التاليين:

موفر الموارد سبب الحاجة إليه
Microsoft.DocumentDB/databaseAccounts مثيل Azure CosmosDB الذي يسجل بيانات التعريف لمساحة العمل.
Microsoft.Search/searchServices يوفر البحث في Azure إمكانات الفهرسة لمساحة العمل.

للحصول على معلومات بشأن تسجيل موفري الموارد، راجع حل الأخطاء لتسجيل موفر المورد.

الخطوات التالية