建立和管理 Azure Machine Learning 計算執行個體

適用於:Azure CLI ml 延伸模組 v2 (目前)Python SDK azure-ai-ml v2 (目前)

了解如何在您的 Azure Machine Learning 工作區中建立和管理計算執行個體

請在雲端中使用計算執行個體來作為已完整設定和完全受控的開發環境。 針對開發和測試,您也可以使用 實例作為 定型計算目標。 計算執行個體可以平行執行多個作業,並具有作業佇列。 在開發環境中,無法與您工作區中的其他使用者共用計算執行個體。

在本文中,您將學會如何:

  • 建立計算執行個體
  • 管理 (啟動、停止、重新啟動、刪除) 計算執行個體
  • 建立排程 以自動啟動和停止計算實例

您也可以使用設定指令碼 (預覽版),以您自己的自訂環境建立計算執行個體。

計算執行個體可在虛擬網路環境中安全地執行作業,而無須企業開啟 SSH 連接埠。 作業會在容器化環境中執行,並在 Docker 容器中封裝模型的相依性。

注意

本文會在下列各節中說明 CLI v2。 如果您仍在使用 CLI v1,請參閱建立 Azure Machine Learning 計算叢集 CLI v1

必要條件

建立

重要

以下標示的項目 (預覽版) 目前處於公開預覽狀態。 此預覽版本會在沒有服務等級協定的情況下提供,不建議用於實際執行工作負載。 可能不支援特定功能,或可能已經限制功能。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款

估計時間:約 5 分鐘。

建立計算執行個體是工作區的一次性程序。 您可以將計算重複使用於開發工作站,或作為訓練用的計算目標。 您可以將多個計算執行個體附加至工作區。

適用於計算執行個體建立的專用核心每個區域、VM 系列配額與總計區域配額會統一,並與 Azure Machine Learning 定型計算叢集配額共用。 停止計算執行個體並不會釋放配額,以確保您能夠重新啟動計算執行個體。 建立計算執行個體之後,就無法變更其虛擬機器大小。

建立計算實例的最快速方式是遵循 快速入門:建立開始使用 Azure Machine Learning 所需的工作區資源

或使用下列範例來建立具有更多選項的計算實例:

適用於Python SDK azure-ai-ml v2 (目前)

# Compute Instances need to have a unique name across the region.
# Here we create a unique name with current datetime
from azure.ai.ml.entities import ComputeInstance, AmlCompute
import datetime

ci_basic_name = "basic-ci" + datetime.datetime.now().strftime("%Y%m%d%H%M")
ci_basic = ComputeInstance(name=ci_basic_name, size="STANDARD_DS3_v2")
ml_client.begin_create_or_update(ci_basic).result()

如需此範例中所使用的類別、方法和參數的詳細資訊,請參閱下列參考文件:

設定自動停止 (預覽)

重要

以下標示的項目 (預覽版) 目前處於公開預覽狀態。 此預覽版本會在沒有服務等級協定的情況下提供,不建議用於實際執行工作負載。 可能不支援特定功能,或可能已經限制功能。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款

若要避免針對已開啟但非作用中的計算執行個體收取費用,您可以設定自動停止。

如果符合下列條件,計算執行個體就會被視為非作用中:

  • (沒有作用中的 Jupyter 核心會話,其會透過 Jupyter、JupyterLab 或互動式筆記本轉譯為無筆記本使用量)
  • 沒有作用中的 Jupyter 終端機工作階段
  • 沒有作用中的 AzureML 執行或實驗
  • 無 SSH 連線
  • 沒有 VS 程式碼連線;您必須關閉 VS Code 連線,計算執行個體才會被視為非作用中。 如果 VS 程式碼偵測到沒有活動 3 小時,工作階段就會自動終止。

不會考慮安裝在計算實例上的自訂應用程式活動。 非啟用時間週期也有一些基本界限;CI 必須至少為 15 分鐘且最多 3 天為非使用中狀態。

此設定可在 CI 建立期間設定,或透過下列介面設定現有 CI:

  • AzureML Studio

    螢幕擷取畫面,顯示建立計算執行個體的 [進階設定] 頁面計算執行個體詳細資訊頁面的螢幕擷取畫面,顯示如何使用閒置關閉更新現有計算執行個體

  • REST API

    端點:

    POST https://management.azure.com/subscriptions/{SUB_ID}/resourceGroups/{RG_NAME}/providers/Microsoft.MachineLearningServices/workspaces/{WS_NAME}/computes/{CI_NAME}/updateIdleShutdownSetting?api-version=2021-07-01
    

    主體:

    {
        "idleTimeBeforeShutdown": "PT30M" // this must be a string in ISO 8601 format
    }
    
  • CLIv2 (YAML) :只能在新 CI 建立期間設定

    # Note that this is just a snippet for the idle shutdown property. Refer to the "Create" Azure CLI section for more information.
    # Note that idle_time_before_shutdown has been deprecated.
    idle_time_before_shutdown_minutes: 30
    
  • Python SDKv2:只能在新 CI 建立期間設定

    # Note that idle_time_before_shutdown has been deprecated.
    ComputeInstance(name=ci_basic_name, size="STANDARD_DS3_v2", idle_time_before_shutdown_minutes="30")
    
  • ARM 範本:只能在新 CI 建立期間設定

    // Note that this is just a snippet for the idle shutdown property in an ARM template
    {
        "idleTimeBeforeShutdown":"PT30M" // this must be a string in ISO 8601 format
    }
    

Azure 原則支援

系統管理員可以使用內建Azure 原則定義,在指定訂用帳戶/資源群組中的所有計算實例上強制執行自動停止。

  1. 從 Azure 入口網站中,瀏覽至 [Azure 原則]。

  2. 在 [定義] 下,尋找閒置關機原則。

    Azure 入口網站中閒置關機原則的螢幕擷取畫面。

  3. 將原則指派給必要的範圍。

您也可以建立自己的自訂 Azure 原則。 例如,如果指派下列原則,則所有新的計算實例都會使用 60 分鐘的閒置期間自動停止。

{
  "mode": "All",
  "policyRule": {
    "if": {
      "allOf": [
        {
          "field": "type",
          "equals": "Microsoft.MachineLearningServices/workspaces/computes"
        },
        {
          "field": "Microsoft.MachineLearningServices/workspaces/computes/computeType",
          "equals": "ComputeInstance"
        },
        {
          "anyOf": [
            {
              "field": "Microsoft.MachineLearningServices/workspaces/computes/idleTimeBeforeShutdown",
              "exists": false
            },
            {
              "value": "[empty(field('Microsoft.MachineLearningServices/workspaces/computes/idleTimeBeforeShutdown'))]",
              "equals": true
            }
          ]
        }
      ]
    },
    "then": {
      "effect": "append",
      "details": [
        {
          "field": "Microsoft.MachineLearningServices/workspaces/computes/idleTimeBeforeShutdown",
          "value": "PT60M"
        }
      ]
    }
  },
  "parameters": {}
}

代表其他人建立 (預覽)

重要

以下標示的項目 (預覽版) 目前處於公開預覽狀態。 此預覽版本會在沒有服務等級協定的情況下提供,不建議用於實際執行工作負載。 可能不支援特定功能,或可能已經限制功能。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款

身為管理員,您可以代表資料科學家建立計算執行個體,並將使用以下方式將執行個體指派給他們:

您為其建立計算執行個體的資料科學家需要下列 Azure 角色型存取控制 (AZURE RBAC) 許可權:

  • Microsoft.MachineLearningServices/workspaces/computes/start/action
  • Microsoft.MachineLearningServices/workspaces/computes/stop/action
  • Microsoft.MachineLearningServices/workspaces/computes/restart/action
  • Microsoft.MachineLearningServices/workspaces/computes/applicationaccess/action
  • Microsoft.MachineLearningServices/workspaces/computes/updateSchedules/action

資料科學家可以啟動、停止和重新啟動計算執行個體。 他們可將計算執行個體用於:

  • Jupyter
  • JupyterLab
  • RStudio
  • 整合式筆記本

排程自動啟動和停止

定義自動關機和自動啟動的多個排程。 例如,建立在星期一至星期四上午 9 點開始,並在下午 6 點停止的排程,然後建立在星期五上午 9 點開始,並在下午 4 點停止的第二個排程。 您可以針對每個計算執行個體建立總共四個排程。

也可以針對代表其他人建立計算執行個體定義排程。 您可以建立排程來建立處於停止狀態的計算執行個體。 當您代表其他使用者建立計算實例時,已停止的計算實例很有用。

在排定的關機之前,使用者會看到通知,告知他們計算實例即將關機。 此時,如果使用者在使用計算實例時,可以選擇關閉即將發生的關機事件。

在 Studio 中建立排程

  1. 填寫表單

  2. 在表單的第二個頁面上,開啟 [顯示進階設定]。

  3. 選取 [新增排程],以新增排程。

    螢幕擷取畫面:在進階設定中新增排程。

  4. 選取 [啟動計算執行個體] 或 [停止計算執行個體]。

  5. 選取 [時區]。

  6. 選取 [啟動時間] 或 [關機時間]。

  7. 選取此排程在使用中的天數。

    螢幕擷取畫面:排程要關閉的計算執行個體。

  8. 如果您想要建立另一個排程,請再次選取 [新增排程]。

建立計算執行個體後,您可以從 [計算執行個體詳細資料] 區段檢視、編輯或加入新的排程。

注意

時區標籤不會將日光節約時間納入考量。 例如,(UTC+01:00) 阿姆斯特丹、柏林、伯恩、羅馬、斯德哥爾摩、維也納在使用日光節約時間時,實際上是 UTC+02:00。

使用 CLI 建立排程

適用於:Azure CLI ml 延伸模組 v2 (目前)

az ml compute create -f create-instance.yml

其中 create-instance.yml 檔案是:

$schema: https://azuremlschemas.azureedge.net/latest/computeInstance.schema.json 
name: schedule-example-i
type: computeinstance
size: STANDARD_DS3_v2
schedules:
   compute_start_stop:
      - action: stop
        trigger:
         type: cron
         start_time: "2021-03-10T21:21:07"
         time_zone: Pacific Standard Time
         expression: 0 18 * * *

使用 SDK 建立排程

適用於Python SDK azure-ai-ml v2 (目前)

from azure.ai.ml import MLClient
from azure.ai.ml.constants import TimeZone
from azure.ai.ml.entities import ComputeInstance, AmlCompute, ComputeSchedules, ComputeStartStopSchedule, RecurrencePattern, RecurrenceTrigger
from azure.identity import DefaultAzureCredential
from dateutil import tz
import datetime
# Enter details of your AML workspace
subscription_id = "<guid>"
resource_group = "sample-rg"
workspace = "sample-ws"
# get a handle to the workspace
ml_client = MLClient(
    DefaultAzureCredential(), subscription_id, resource_group, workspace
)
ci_minimal_name = "sampleCI"
mytz = tz.gettz("Asia/Kolkata")
now = datetime.datetime.now(tz = mytz)
starttime = now + datetime.timedelta(minutes=25)
triggers = RecurrenceTrigger(frequency="day", interval=1, schedule=RecurrencePattern(hours=17, minutes=30))
myschedule = ComputeStartStopSchedule(start_time=starttime, time_zone=TimeZone.INDIA_STANDARD_TIME, trigger=triggers, action="Stop")
com_sch = ComputeSchedules(compute_start_stop=[myschedule])
ci_minimal = ComputeInstance(name=ci_minimal_name, schedules=com_sch)
ml_client.begin_create_or_update(ci_minimal)

使用 Resource Manager 範本建立排程

您可以使用 Resource Manager 範本以排程計算執行個體的自動啟動與停止。

在 Resource Manager 範本中新增:

"schedules": "[parameters('schedules')]"

然後使用 cron 或 LogicApps 運算式來定義在您參數檔中啟動或停止執行個體的排程:

        "schedules": {
        "value": {
        "computeStartStop": [
          {
            "triggerType": "Cron",
            "cron": {              
              "timeZone": "UTC",
              "expression": "0 18 * * *"
            },
            "action": "Stop",
            "status": "Enabled"
          },
          {
            "triggerType": "Cron",
            "cron": {              
              "timeZone": "UTC",
              "expression": "0 8 * * *"
            },
            "action": "Start",
            "status": "Enabled"
          },
          { 
            "triggerType": "Recurrence", 
            "recurrence": { 
              "frequency": "Day", 
              "interval": 1, 
              "timeZone": "UTC", 
              "schedule": { 
                "hours": [17], 
                "minutes": [0]
              } 
            }, 
            "action": "Stop", 
            "status": "Enabled" 
          } 
        ]
      }
    }
  • 動作的值可以是 "Start" 或 "Stop"。

  • 針對 Recurrence 的觸發程式類型,請使用與邏輯應用程式相同的語法,並搭配此週期性結構描述

  • 針對 cron 的觸發程式類型,請使用標準 cron 語法:

    // Crontab expression format: 
    // 
    // * * * * * 
    // - - - - - 
    // | | | | | 
    // | | | | +----- day of week (0 - 6) (Sunday=0) 
    // | | | +------- month (1 - 12) 
    // | | +--------- day of month (1 - 31) 
    // | +----------- hour (0 - 23) 
    // +------------- min (0 - 59) 
    // 
    // Star (*) in the value field above means all legal values as in 
    // braces for that column. The value column can have a * or a list 
    // of elements separated by commas. An element is either a number in 
    // the ranges shown above or two numbers in the range separated by a 
    // hyphen (meaning an inclusive range). 
    

Azure 原則支援預設為排程

使用 Azure 原則來強制執行訂用帳戶中每個計算執行個體的關機排程,或如果沒有任何專案,則預設為排程。 以下是預設關機排程 (在 PST 晚上 10 點) 的範例原則。

{
    "mode": "All",
    "policyRule": {
     "if": {
      "allOf": [
       {
        "field": "Microsoft.MachineLearningServices/workspaces/computes/computeType",
        "equals": "ComputeInstance"
       },
       {
        "field": "Microsoft.MachineLearningServices/workspaces/computes/schedules",
        "exists": "false"
       }
      ]
     },
     "then": {
      "effect": "append",
      "details": [
       {
        "field": "Microsoft.MachineLearningServices/workspaces/computes/schedules",
        "value": {
         "computeStartStop": [
          {
           "triggerType": "Cron",
           "cron": {
            "startTime": "2021-03-10T21:21:07",
            "timeZone": "Pacific Standard Time",
            "expression": "0 22 * * *"
           },
           "action": "Stop",
           "status": "Enabled"
          }
         ]
        }
       }
      ]
     }
    }
}    

指派受控識別 (預覽版)

重要

以下標示的項目 (預覽版) 目前處於公開預覽狀態。 此預覽版本會在沒有服務等級協定的情況下提供,不建議用於實際執行工作負載。 可能不支援特定功能,或可能已經限制功能。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款

您可以將系統或使用者指派的 受控識別 指派給計算實例,以針對其他 Azure 資源進行驗證,例如儲存體。 使用受控識別進行驗證有助於改善工作區安全性和管理。 例如,您可以只允許使用者在登入計算實例時存取定型資料。 或者,使用一般使用者指派的受控識別來允許存取特定儲存體帳戶。

您可以從 Azure ML Studio 建立具有受控識別的計算實例:

  1. 填寫表單以 建立新的計算實例
  2. 選取 [下一步:進階設定]。
  3. 啟用 指派受控識別
  4. 選取 [身分識別類型] 底下的[系統指派] 或 [使用者指派]。
  5. 如果您選取 [使用者指派],請選取 [訂用帳戶] 和身分識別的名稱。

您可以使用 V2 CLI 來建立具有指派系統指派受控識別的計算實例:

az ml compute create --name myinstance --identity-type SystemAssigned --type ComputeInstance --resource-group my-resource-group --workspace-name my-workspace

您也可以搭配 yaml 檔案使用 V2 CLI,例如建立具有使用者指派受控識別的計算實例:

azure ml compute create --file compute.yaml --resource-group my-resource-group --workspace-name my-workspace

身分識別定義包含在 compute.yaml 檔案中:

https://azuremlschemas.azureedge.net/latest/computeInstance.schema.json
name: myinstance
type: computeinstance
identity:
  type: user_assigned
  user_assigned_identities: 
    - resource_id: identity_resource_id

建立受控識別之後,請在資料存放區的儲存體帳戶上至少授與受控識別儲存體 Blob 資料讀取者角色,請參閱 存取儲存體服務。 然後,當您處理計算實例時,系統會自動使用受控識別來針對資料存放區進行驗證。

注意

所建立系統受控識別的名稱會以 Azure Active Directory 中的 /workspace-name/computes/compute-instance-name 格式顯示。

您也可以手動使用受控識別來驗證其他 Azure 資源。 下列範例示範如何使用它來取得 Azure Resource Manager存取權杖:

import requests

def get_access_token_msi(resource):
    client_id = os.environ.get("DEFAULT_IDENTITY_CLIENT_ID", None)
    resp = requests.get(f"{os.environ['MSI_ENDPOINT']}?resource={resource}&clientid={client_id}&api-version=2017-09-01", headers={'Secret': os.environ["MSI_SECRET"]})
    resp.raise_for_status()
    return resp.json()["access_token"]

arm_access_token = get_access_token_msi("https://management.azure.com")

注意

若要搭配受控識別使用 Azure CLI 進行驗證,請在登入時將身分識別用戶端識別碼指定為使用者名稱: az login --identity --username $DEFAULT_IDENTITY_CLIENT_ID

新增自訂應用程式,例如RStudio (預覽版)

重要

以下標示的項目 (預覽版) 目前處於公開預覽狀態。 此預覽版本會在沒有服務等級協定的情況下提供,不建議用於實際執行工作負載。 可能不支援特定功能,或可能已經限制功能。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款

您可以在建立計算執行個體時設定其他應用程式,例如 RStudio。 請在工作室中遵循下列步驟,以在您的計算執行個體上設定自訂應用程式

  1. 填寫表單以建立新的計算執行個體
  2. 選取 [下一步:進階設定]
  3. 選取 [自訂應用程式設定 (RStudio Workbench 等)] 區段底下的 [新增應用程式]

顯示自訂服務設定的螢幕擷取畫面。

設定 RStudio Workbench

RStudio 是 R 開發人員最愛用來處理 ML 和資料科學專案的 IDE。 您可以使用自己的 RStudio 授權,輕鬆地設定 RStudio Workbench 以在計算執行個體上執行,以及存取 RStudio Workbench 所提供的豐富功能集。

  1. 請遵循上述步驟,在建立計算執行個體時新增應用程式
  2. 在 [應用程式] 下拉式清單中選取 [RStudio Workbench (自備授權)],然後在 [授權金鑰] 欄位中輸入您的 RStudio Workbench 授權金鑰。 您可以從 RStudio 取得您的 RStudio Workbench 授權或試用版授權。
  3. 選取 [建立] 將 RStudio Workbench 應用程式新增至計算執行個體。

螢幕擷取畫面顯示 [RStudio 設定]。

重要

如果使用私人連結工作區,請確定可存取 docker 映射 pkg-containers.githubusercontent.com 和 ghcr.io。 此外,請使用範圍 8704-8993 中已發佈的連接埠。 針對 RStudio Workbench,請提供 的網路存取權,以確保授權可供存取 https://www.wyday.com

注意

  • 尚未提供從 RStudio 存取工作區檔案存放區的支援。
  • 存取多個 RStudio 執行個體時,如果您看到 400 不正確的要求。 要求標頭或 Cookie 太大 錯誤,則請使用新的瀏覽器,或以 incognito 模式從瀏覽器進行存取。
  • RStudio Workbench 目前不支援 Shiny 應用程式。

設定 RStudio 開放原始碼

若要使用 RStudio 開放原始碼,請設定自訂應用程式,如下所示:

  1. 請遵循上述步驟,在建立計算執行個體時新增應用程式

  2. 在 [應用程式] 下拉式清單上選取 [自訂應用程式]

  3. 設定您想要使用的 [應用程式名稱]。

  4. 設定應用程式以在目標連接埠8787上執行 - 下面所列 RStudio 開放原始碼的 Docker 映像必須在此目標連接埠上執行。

  5. 設定要在已發佈的連接埠8787上存取的應用程式 - 您可以視需要將應用程式設定為要在不同的已發佈連接埠上存取。

  6. Docker 映像指向 ghcr.io/azure/rocker-rstudio-ml-verse:latest

  7. 使用 [繫結掛接] 新增預設儲存體帳戶中檔案的存取權:

    • 針對 [主機路徑] 指定 /home/azureuser/cloudfiles
    • 針對 [容器路徑] 指定 /home/azureuser/cloudfiles
    • 選取 [新增] 以新增此掛接。 由於檔案已掛接,因此將可取得您在其他計算執行個體和應用程式中進行的變更。
  8. 選取 [建立] 以將 RStudio 設定為計算執行個體上的自訂應用程式。

螢幕擷取畫面顯示表單,可將 RStudio 設定為自訂應用程式

重要

如果使用私人連結工作區,請確定可存取 docker 映射、pkg-containers.githubusercontent.com 和 ghcr.io。 此外,請使用範圍 8704-8993 中已發佈的連接埠。 針對 RStudio Workbench,請提供 的網路存取權 https://www.wyday.com ,以確保授權可供存取。

設定其他自訂應用程式

藉由在 Docker 映像上提供應用程式,在計算執行個體上設定其他自訂應用程式。

  1. 請遵循上述步驟,在建立計算執行個體時新增應用程式
  2. 在 [應用程式] 下拉式清單上選取 [自訂應用程式]。
  3. 設定 [應用程式名稱]、您想要在其上執行應用程式的 [目標連接埠]、您想要在其上存取應用程式的 [已發佈連接埠],以及包含您應用程式的 [Docker 映像]。
  4. (選擇性) 新增您想要用於應用程式的 [環境變數]。
  5. 使用 [繫結掛接] 新增預設儲存體帳戶中檔案的存取權:
    • 針對 [主機路徑] 指定 /home/azureuser/cloudfiles
    • 針對 [容器路徑] 指定 /home/azureuser/cloudfiles
    • 選取 [新增] 以新增此掛接。 由於檔案已掛接,因此將可取得您在其他計算執行個體和應用程式中進行的變更。
  6. 選取 [建立] 以在計算執行個體上設定自訂應用程式。

螢幕擷取畫面顯示自訂應用程式設定。

重要

如果使用私人連結工作區,請確定可存取 docker 映射、pkg-containers.githubusercontent.com 和 ghcr.io。 此外,請使用範圍 8704-8993 中已發佈的連接埠。 針對 RStudio Workbench,請提供 的網路存取權 https://www.wyday.com ,以確保授權可供存取。

在工作室中存取自訂應用程式

在工作室中存取您所設定的自訂應用程式:

  1. 選取左側的 [計算]。
  2. 在 [計算執行個體] 索引標籤上,於 [應用程式] 資料行底下查看您的應用程式。

螢幕擷取畫面顯示自訂應用程式的 Studio 存取權。

注意

設定自訂應用程式之後,您可能需要幾分鐘的時間才能透過上述連結進行存取。 所花費的時間量將取決於用於自訂應用程式的映像大小。 如果您在嘗試存取應用程式時看到 502 錯誤訊息,則請等候一些時間來設定應用程式,然後再試一次。

啟動 RStudio之後,您可能不會看到任何檔案,即使在上面指定正確的 Bind 掛接 之後也一樣。 如果發生這種情況:

  1. 選取 [檔案] 窗格最右邊的...
  2. 針對 [路徑至資料夾],輸入 /home/azureuser/cloudfiles/code

螢幕擷取畫面:設定 RStudio 以尋找您的 cloudfiles。

管理

啟動、停止、重新啟動、刪除計算執行個體。 計算執行個體不會自動縮小,因此請務必停止資源以避免持續收費。 停止計算執行個體會將其解除配置。 然後再於需要時加以啟動。 停止計算執行個體會停止計算時數的計費,但您仍需支付磁片、公用 IP 和標準負載平衡器的費用。

您可以建立排程,讓計算執行個體根據每週特定日期和時間自動啟動及停止。

提示

計算執行個體具有 120GB 的 OS 磁碟。 若您用盡磁碟空間,請先使用終端清除至少 1-2 GB 的空間,然後再停止或重新啟動計算執行個體。 請不要從終端機發出 sudo 關機來停止計算執行個體。 計算執行個體上的暫存磁碟大小取決於所選擇的 VM 大小,並掛接於/mnt。

適用於Python SDK azure-ai-ml v2 (目前)

在下列範例中,計算實例的名稱會儲存在 變數 ci_basic_name 中。

  • 取得狀態

    from azure.ai.ml.entities import ComputeInstance, AmlCompute
    
    # Get compute
    ci_basic_state = ml_client.compute.get(ci_basic_name)
  • Stop

    from azure.ai.ml.entities import ComputeInstance, AmlCompute
    
    # Stop compute
    ml_client.compute.begin_stop(ci_basic_name).wait()
  • 開始

    from azure.ai.ml.entities import ComputeInstance, AmlCompute
    
    # Start compute
    ml_client.compute.begin_start(ci_basic_name).wait()
  • 重新啟動

    from azure.ai.ml.entities import ComputeInstance, AmlCompute
    
    # Restart compute
    ml_client.compute.begin_restart(ci_basic_name).wait()
  • 刪除

    from azure.ai.ml.entities import ComputeInstance, AmlCompute
    
    ml_client.compute.begin_delete(ci_basic_name).wait()

Azure RBAC 可讓您控制工作區中的哪些使用者可以建立、刪除、啟動、停止、重新啟動計算執行個體。 工作區參與者和擁有者角色中的所有使用者都可以在工作區中建立、刪除、啟動、停止和重新啟動計算執行個體。 不過,只有特定計算執行個體的建立者,或代表其建立的使用者指派時,才允許存取該計算執行個體上的 Jupyter、JupyterLab 和 RStudio。 計算實例專用於具有根存取權的單一使用者。 該使用者可存取實例上執行的 Jupyter/JupyterLab/RStudio。 計算執行個體只會有單一使用者登入,而且所有動作都會使用該使用者的身分識別來獲得實驗作業 Azure RBAC 和屬性。 SSH 存取是透過公開/私密金鑰機制來加以控制的。

這些動作可由 Azure RBAC 控制:

  • Microsoft.MachineLearningServices/workspaces/computes/read
  • Microsoft.MachineLearningServices/workspaces/computes/write
  • Microsoft.MachineLearningServices/workspaces/computes/delete
  • Microsoft.MachineLearningServices/workspaces/computes/start/action
  • Microsoft.MachineLearningServices/workspaces/computes/stop/action
  • Microsoft.MachineLearningServices/workspaces/computes/restart/action
  • Microsoft.MachineLearningServices/workspaces/computes/updateSchedules/action

若要建立計算執行個體,您將需要下列動作的權限:

  • Microsoft.MachineLearningServices/workspaces/computes/write
  • Microsoft.MachineLearningServices/workspaces/checkComputeNameAvailability/action

稽核並觀察計算實例版本 (預覽)

一旦部署計算實例,它就不會自動更新。 Microsoft每月發行新的 VM 映射。 若要瞭解使用最新版本保留最新版的選項,請參閱 弱點管理

若要追蹤實例的作業系統版本是否為最新狀態,您可以使用 Studio UI 查詢其版本。 在 Azure Machine Learning Studio 的工作區中選取 [計算],然後選取頂端的 [計算執行個體]。 選取計算實例的計算名稱,以查看其屬性,包括目前的作業系統。 在預覽管理面板底下啟用 「稽核並觀察計算實例 os 版本」,以查看這些預覽屬性。

系統管理員可以使用Azure 原則定義稽核跨工作區和訂用帳戶在過期作業系統版本上執行的實例。 以下是範例原則:

{
    "mode": "All",
    "policyRule": {
      "if": {
        "allOf": [
          {
            "field": "type",
            "equals": "Microsoft.MachineLearningServices/workspaces/computes"
          },
          {
            "field": "Microsoft.MachineLearningServices/workspaces/computes/computeType",
            "equals": "ComputeInstance"
          },
          {
            "field": "Microsoft.MachineLearningServices/workspaces/computes/osImageMetadata.isLatestOsImageVersion",
            "equals": "false"
          }
        ]
      },
      "then": {
        "effect": "Audit"
      }
    }
}    

後續步驟