使用指令碼自訂計算執行個體
使用安裝腳本進行自動化的方式,在布建時自定義和設定計算實例。
使用計算實例作為雲端中完整設定和管理的開發環境。 針對開發和測試,您也可以使用 實例作為 定型計算目標 或 推斷目標。 計算實例可以平行執行多個作業,並具有作業佇列。 身為開發環境,計算實例無法與工作區中的其他用戶共用。
您作為系統管理員可以撰寫自訂指令碼,以根據需求佈建工作區中所有計算執行個體。 您可以將安裝文稿設定為建立腳本,此腳本會在建立計算實例時執行一次。 或者,您可以將它設定為啟動腳本,這會在每次啟動計算實例時執行(包括初始建立)。
以下是您可以在安裝指令碼中執行的一些範例:
- 安裝套件、工具和軟體
- 裝載資料
- 建立自訂 Conda 環境和 Jupyter 核心
- 複製 Git 儲存機制並設定 Git 設定
- 設定網路 Proxy
- 設定環境變數
- 安裝 JupyterLab 擴充功能
建立安裝指令碼
安裝程式腳本是殼層腳本,其會以的形式 rootuser
執行。 建立或上傳腳本到 Notebooks 檔案:
- 登入 Studio 並選取您的工作區。
- 選取左側的 [筆記本]。
- 使用 [ 新增檔案 ] 工具來建立或上傳您的安裝殼層腳本。 請確定文稿檔名結尾為 「.sh」。 當您建立新的檔案時,也會將 [文件類型] 變更為bash(.sh)。
當文稿執行時,腳本的目前工作目錄就是上傳腳本的目錄。 例如,如果您將腳本上傳至用戶系統管理員,當腳本執行時,腳本在計算實例和目前工作目錄的位置是 /home/azureuser/cloudfiles/code/Users/admin。>此位置可讓您在文稿中使用相對路徑。
腳本自變數可以在腳本中稱為 $1、$2 等。
如果您的腳本正在執行 azureuser 的特定作業,例如安裝 conda 環境或 Jupyter 核心,請將它放在區塊中 sudo -u azureuser
,如下所示:
#!/bin/bash
set -e
# This script installs a pip package in compute instance azureml_py38 environment.
sudo -u azureuser -i <<'EOF'
PACKAGE=numpy
ENVIRONMENT=azureml_py38
conda activate "$ENVIRONMENT"
pip install "$PACKAGE"
conda deactivate
EOF
命令 sudo -u azureuser
會將目前的工作目錄變更為 /home/azureuser
。 您也可以存取此區塊中的腳本自變數。
如需其他範例腳本,請參閱 azureml-examples。
您也可以在文稿中使用下列環境變數:
CI_RESOURCE_GROUP
CI_WORKSPACE
CI_NAME
CI_LOCAL_UBUNTU_USER
- 指向azureuser
使用安裝腳本搭配 Azure 原則,針對每個計算實例建立強制執行或預設安裝腳本。
安裝程式腳本逾時的預設值為15分鐘。 時間可以在 Studio 中變更,或是透過使用 參數的 DURATION
ARM 範本來變更。
DURATION
是具有選擇性後綴的浮點數: 's'
秒(預設值)、 'm'
分鐘、 'h'
小時或 'd'
天數。
在 Studio 中使用腳本
儲存文稿之後,請在建立計算實例期間指定它:
- 登入 Studio 並選取您的工作區。
- 在左側,選取 [計算]。
- 選取 [+新增 ] 以建立新的計算實例。
- 填寫表單。
- 在表單的 [ 應用程式 ] 頁面上,切換您想要使用的腳本類型、建立腳本(在建立計算實例時執行一次)或啟動腳本(每次啟動計算實例時執行)。
- 流覽至您儲存的殼層腳本。 或從您的電腦上傳腳本。
- 視需要新增命令自變數。
提示
如果工作區記憶體連結至虛擬網路,除非您從虛擬網路中存取 Studio,否則可能無法存取設定腳本檔案。
在 Resource Manager 範本中使用腳本
在 Resource Manager 範本中,新增 setupScripts
以在布建計算實例時叫用安裝腳本。 例如:
"setupScripts":{
"scripts":{
"creationScript":{
"scriptSource":"workspaceStorage",
"scriptData":"[parameters('creationScript.location')]",
"scriptArguments":"[parameters('creationScript.cmdArguments')]"
}
}
}
scriptData
此會指定筆記本檔案分享中建立文稿的位置,例如 Users/admin/testscript.sh
。
scriptArguments
在上方是選擇性的,並指定建立腳本的自變數。
您可以改為提供 Resource Manager 樣本的內嵌腳本。 Shell 命令可以參考上傳至筆記本檔案共用的任何相依性。 當您使用內嵌字串時,文稿的工作目錄是 /mnt/batch/tasks/shared/LS_root/mounts/clusters/**\<ciname\>**/code/Users
。
例如,針對 指定base64編碼的命令字串 scriptData
:
"setupScripts":{
"scripts":{
"creationScript":{
"scriptSource":"inline",
"scriptData":"[base64(parameters('inlineCommand'))]",
"scriptArguments":"[parameters('creationScript.cmdArguments')]"
}
}
}
安裝文本記錄
安裝指令碼執行中的記錄,會出現在計算執行個體詳細資料頁面的 [記錄] 資料夾中。 記錄會儲存回 Logs\<compute instance name>
資料夾下的筆記本檔案共用。 特定計算實例的腳本檔案和命令自變數會顯示在詳細數據頁面中。