適用於:
Azure CLI ml extension v2 (current)
Python SDK azure-ai-ml v2 (current)
警告
Import data from external sources (preview) 以及 Azure Machine Learning 中的 Data Connections (preview) 已棄用,將於 2026 年 9 月 30 日後無法使用。 在那之前,你可以繼續使用這些功能,不會被打斷。 過了那個日期,任何依賴這些系統的工作負載都會受到影響。
建議行動:將外部資料匯入遷移至Microsoft Fabric並利用Azure Machine Learning資料儲存庫讓資料在Azure Machine Learning中可用。
在本文中,您將學習如何連接外部資料來源,使其資料能被 Azure Machine Learning 使用。 你也會學會如何連接多個外部非資料服務。 你可以使用 Azure Machine Learning CLI、Azure Machine Learning SDK for Python,或 機器學習 studio 來建立這些連結。
Azure Machine Learning 連線會安全地將使用者名稱和密碼作為秘密儲存在金鑰保險庫中。 Azure 連線作為 Key Vault 代理,與這些連線的互動是直接與 Azure Key Vault 互動。 金鑰保存庫 的角色導向存取控制(RBAC)負責管理資料資源的存取。 憑證儲存在金鑰庫後,你不需要直接處理它們。
Azure 支援連接以下外部來源以提升資料可用性:
- Snowflake
- Azure SQL Database
- 亞馬遜 S3
先決條件
Azure訂閱,包含免費或付費版本的Azure Machine Learning。
一個 Azure Machine Learning 工作空間。
已安裝 ml 擴充功能 2.15.1 (含) 以上版本的 Azure CLI。
如果你有較舊的 Azure CLI 版本或擴充功能,請使用以下程式碼卸載它並安裝新的。
az extension remove -n ml
az extension add -n ml --yes
az extension show -n ml 2.15.1
建立 Snowflake 資料連線
你可以使用 Azure Machine Learning CLI、Azure Machine Learning SDK for Python,或 機器學習 studio,來建立一個使用 username/password 認證的 Snowflake 資料連線。
你也可以使用 Azure CLI 或 Python SDK 建立一個採用 OAuth 和服務主體身份的 Snowflake 連線。 機器學習 Studio 不支援建立 OAuth 連線。
建立一個使用使用者名稱/密碼驗證的連線
要建立 Snowflake 連線,先組合一個定義該連線的 YAML 檔案,然後執行指令或腳本呼叫該 YAML 檔案。 對於 Python SDK,你也可以直接指定連線資訊,而不必使用 YAML 檔案。
你可以把憑證存在 YAML 檔案裡,並在建立連線時,在 Azure CLI 指令列中覆寫儲存的憑證。 然而,最好避免將憑證儲存在檔案中,因為安全漏洞可能導致憑證外洩。 相反地,你可以將 credentials 的數值留空,並在命令列中提供它們。
以下的 YAML 檔案定義了使用 username/password 驗證的 Snowflake 連線。 若要建立檔案,請提供 <connection-name>,並將 <account>、<database>、<warehouse> 和 <role> 預留位置,替換為您 Snowflake 帳戶中的值。 若不提供 <role>,則值預設為 PUBLIC。 將檔案儲存為如下名稱 my_snowflake_connection.yaml。
$schema: http://azureml/sdk-2-0/Connection.json
type: snowflake
name: <connection-name>
target: jdbc:snowflake://<account>.snowflakecomputing.com/?db=<database>&warehouse=<warehouse>&role=<role>
credentials:
type: username_password
username: <snowflake-username>
password: <snowflake-password>
你可以在 機器學習 Studio 建立一個 Snowflake 資料庫的資料連線,並用這個連線來執行資料匯入作業。 使用者名稱/密碼憑證會安全地儲存在與工作空間相關的金鑰庫中。
在 Azure Machine Learning 工作室 建立資料連線:
在你的 機器學習 工作區中,選擇左側導覽選單中 資產 下的 數據。
在 資料 頁面,選擇 資料連接 標籤,然後選擇 連接。
截圖顯示在 Azure Machine Learning Studio 中新資料連線的開始。
要建立連線,請執行以下其中一種指令列,並提供你的 YAML 檔名作為 <yaml-filename> 佔位符。
要使用你儲存在 YAML 檔案中的使用者名稱和密碼,請執行以下指令:
az ml connection create --file <yaml-filename>.yaml
若要在命令列中提供使用者名稱和密碼,請執行以下指令,並輸入 your <username> and <password> 作為佔位符:
az ml connection create --file <yaml-filename>.yaml --set credentials.username="<username>" credentials.password="<password>"
要透過呼叫 YAML 檔案建立 Snowflake 連線,執行以下 Python 腳本,將 <yaml-filename> 佔位符替換成你的 YAML 檔名。
from azure.ai.ml import MLClient, load_workspace_connection
ml_client = MLClient.from_config()
wps_connection = load_workspace_connection(source="./<yaml-filename>.yaml")
wps_connection.credentials.username="<snowflake-username>"
wps_connection.credentials.password="<snowflake-password>"
ml_client.connections.create_or_update(workspace_connection=wps_connection)
直接創作
若要直接指定連線資訊而不使用 YAML 檔案,請執行以下 Python 腳本。 提供<connection-name>的數值,並將<account>、<database>、<warehouse>和<role>佔位符替換成你 Snowflake 帳號的數值。
若不提供 <role>,則值預設為 PUBLIC。 對於使用者名稱-密碼認證類型,名稱/密碼值應該以 URL 編碼。
from azure.ai.ml import MLClient
from azure.ai.ml.entities import WorkspaceConnection
from azure.ai.ml.entities import UsernamePasswordConfiguration
import urllib.parse
username = urllib.parse.quote(os.environ["SNOWFLAKEDB_USERNAME"], safe="")
password = urllib.parse.quote(os.environ["SNOWFLAKEDB_PASSWORD"], safe="")
target= "jdbc:snowflake://<account>.snowflakecomputing.com/?db=<database>&warehouse=<warehouse>&role=<role>"
name= <connection-name>
wps_connection = WorkspaceConnection(name= name,
type="snowflake",
target= target,
credentials= UsernamePasswordConfiguration(username=username, password=password)
)
ml_client.connections.create_or_update(workspace_connection=wps_connection)
在 建立連線 畫面,請填寫以下資訊:
-
服務:選擇 雪花。
-
目標:請輸入以下目標,並使用你 Snowflake 帳號的值作為佔位符:
jdbc:snowflake://<account>.snowflakecomputing.com/?db=<database>&warehouse=<warehouse>&role=<role>
-
認證類型:選擇 使用者名稱密碼。
-
使用者名稱:請輸入你的 Snowflake 使用者名稱。
-
密碼:輸入你的 Snowflake 密碼。
-
連接名稱:輸入 Snowflake 連接名稱。
可選擇 「測試連線 」來測試連線,然後選擇 「儲存」。
在 Azure Machine Learning Studio 中建立新 Snowflake 連線的截圖顯示。
使用 Azure CLI 或 Python SDK 建立帶有 OAuth 認證的連線
你可以使用 Azure CLI 或 Python SDK 建立一個 Snowflake 連線,並使用 OAuth 的服務主體來認證。
重要
在你能使用 OAuth 建立連線之前,你必須先 配置 Azure 代表客戶端 發出 OAuth 代幣。 此設定過程建立 OAuth 連線所需的服務主體。
要建立 Azure Machine Learning 的 OAuth 連線,您需要以下資訊:
-
客戶端 ID:服務主體的 ID
-
用戶端秘密:服務主體秘密
-
租戶編號:Microsoft Entra ID租戶的識別碼
要建立連線,首先組合一個定義該連線的 YAML 檔案,然後執行指令或腳本呼叫該 YAML 檔案。 對於 Python SDK,你也可以直接指定連線資訊,而不必使用 YAML 檔案。
建立以下 YAML 檔案,定義使用 OAuth 的 Snowflake 連線。 提供一個 <connection-name>,並將 <account>、<database>、<warehouse> 和 <service-principal-scope> 佔位符替換成你 Snowflake 帳號的值。 關於憑證,請提供你的 <client-id>、<client-secret>、<tenant_id>。
name: <connection-name>
type: snowflake
target: jdbc:snowflake://<account>.snowflakecomputing.com/?db=<database>&warehouse=<warehouse>&scope=<service-principal-scope>
credentials:
type: service_principal
client_id: <client-id>
client_secret: <client-secret>
tenant_id: <tenant-id>
機器學習 Studio 不支援使用 OAuth 認證建立資料連線。
要使用 YAML 檔案中儲存的憑證資訊建立連線,執行以下指令,將佔位符替換 <yaml-filename> 為你的 YAML 檔名。
az ml connection create --file <yaml-filename>.yaml
若要覆蓋 YAML 檔案中的憑證資訊或在命令列提供憑證,請執行以下指令,輸入你的 <client-id>、 <client-secret>、 以及 <tenant-id> 佔位符的值:
az ml connection create --file <yaml-filename>.yaml --set credentials.client_id="<client-id>" credentials.client_secret="<client-secret>" credentials.tenant_id="<tenant-id>"
要透過呼叫 YAML 檔案建立 OAuth 連線,執行以下 Python 腳本,將 <yaml-filename> 佔位符替換為你的 YAML 檔名。 你可以選擇性地提供或覆蓋這些 <wps_connection.credentials> 數值。
from azure.ai.ml import MLClient, load_workspace_connection
ml_client = MLClient.from_config()
wps_connection = load_workspace_connection(source="./<yaml-filename>.yaml")
wps_connection.credentials.client_id="<client-id>"
wps_connection.credentials.client_secret="<client-secret>"
wps_connection.credentials.tenant_id="<tenant-id>"
ml_client.connections.create_or_update(workspace_connection=wps_connection)
直接創作
執行以下 Python 腳本,直接指定 OAuth 連線資訊,無需使用 YAML 檔案。 提供一個 <connection-name>,並將 <account>、<database>、<warehouse> 和 <role> 佔位符替換成你 Snowflake 帳號的值。 輸入你的 <client-id>、 、 <client-secret>以及 <tenant-id> 相應的佔位符中的數值。
from azure.ai.ml import MLClient
from azure.ai.ml.entities import WorkspaceConnection
from azure.ai.ml.entities import ServicePrincipalConfiguration
target= "jdbc:snowflake://<account>.snowflakecomputing.com/?db=<database>&warehouse=<warehouse>&role=<role>"
name= <connection-name>
auth = ServicePrincipalConfiguration(client_id="<client-id>", client_secret="<client-secret>", tenant_id="<tenant-id>")
wps_connection = WorkspaceConnection(name= name,
type="snowflake",
target=target,
credentials=auth
)
ml_client.connections.create_or_update(workspace_connection=wps_connection)
你可以用使用者名稱/密碼驗證建立 Snowflake 連線,或使用 Azure CLI 或 Python SDK 用 OAuth 認證建立連線。
建立一個 Azure SQL Database 資料連線
你可以使用 Azure Machine Learning CLI、Azure Machine Learning SDK for Python,或 機器學習 studio 來建立 Azure SQL Database 資料連線。
要建立 Azure SQL 資料庫連線,先組譯一個定義連線的 YAML 檔案,然後執行 Azure CLI 或 Python SDK 指令或腳本來呼叫該 YAML 檔案。 對於 Python SDK,你也可以直接指定連線資訊,而不必使用 YAML 檔案。
建立以下 YAML 檔案來定義Azure SQL Database連線,並將檔案名稱儲存為 my_azuresqldb_connection.yaml。 提供一個 <connection-name>,並以 Azure SQL 資料庫中的適當值替換 <server>、<port> 和 <database> 佔位符。
對於 credentials,你可以在這個檔案中儲存Azure SQL資料庫的使用者名稱和密碼,但保持空值並在建立連線的命令列中提供會更安全。
$schema: http://azureml/sdk-2-0/Connection.json
type: azure_sql_db
name: <connection-name>
target: Server=tcp:<server>,<port>;Database=<database>;Trusted_Connection=False;Encrypt=True;Connection Timeout=30
credentials:
type: sql_auth
username: <username>
password: <password>
你可以在 機器學習 Studio 建立一個 Azure SQL 資料庫的資料連線,並利用這個連線來執行資料匯入工作。 使用者名稱/密碼憑證會安全地儲存在與工作空間相關的金鑰庫中。
在 Azure Machine Learning 工作室 建立資料連線:
在你的 機器學習 工作區中,選擇左側導覽選單中 資產 下的 數據。
在 資料 頁面,選擇 資料連接 標籤,然後選擇 連接。
截圖顯示在 Azure Machine Learning Studio 中新資料連線的開始。
要建立連線,請執行以下 CLI 指令列之一,並提供你的 YAML 檔名作為 <yaml-filename> 佔位符。
要使用 YAML 檔案中儲存的使用者名稱和密碼,請執行以下指令:
az ml connection create --file <yaml-filename>.yaml
若要在命令列中提供使用者名稱和密碼,請執行以下指令,並輸入 your <username> and <password> 作為佔位符:
az ml connection create --file <yaml-filename>.yaml --set credentials.username="<username>" credentials.password="<password>"
要透過呼叫 YAML 檔案建立 Azure SQL Database 連線,請執行以下 Python 腳本,將 <yaml-filename> 佔位符替換為你的 YAML 檔名。
from azure.ai.ml import MLClient, load_workspace_connection
ml_client = MLClient.from_config()
wps_connection = load_workspace_connection(source="./<yaml-filename>.yaml")
wps_connection.credentials.username="<username>"
wps_connection.credentials.password="<password>"
ml_client.connections.create_or_update(workspace_connection=wps_connection)
直接創作
若要直接指定連線資訊而不使用 YAML 檔案,請執行以下 Python 腳本。 提供一個 <connection-name>,並將 <server>、<port> 和 <database> 的佔位符換成你的 Azure SQL 資料庫值。 對於使用者名稱-密碼認證類型,名稱和密碼值應該以 URL 編碼。
from azure.ai.ml import MLClient
from azure.ai.ml.entities import WorkspaceConnection
from azure.ai.ml.entities import UsernamePasswordConfiguration
import urllib.parse
username = urllib.parse.quote(os.environ["MYSQL_USERNAME"], safe="")
password = urllib.parse.quote(os.environ["MYSQL_PASSWORD"], safe="")
target= "Server=tcp:<server>,<port>;Database=<database>;Trusted_Connection=False;Encrypt=True;Connection Timeout=30"
# add the sql servername, port address and database
name= <connection-name>
wps_connection = WorkspaceConnection(name= name,
type="azure_sql_db",
target= target,
credentials= UsernamePasswordConfiguration(username=username, password=password)
)
ml_client.connections.create_or_update(workspace_connection=wps_connection)
在 建立連線 畫面,請填寫以下資訊:
-
Service: Select AzureSqlDb.
-
Target:請輸入以下目標,使用你Azure SQL資料庫中的值作為佔位符:
Server=tcp:<server,<port>;Database=<資料庫>;受信任的連接=否;加密=True;連接逾時=30
-
認證類型:選擇 使用者名稱密碼。
-
Username:輸入你的Azure SQL Database用戶名。
-
Password:輸入你的Azure SQL Database密碼。
-
Connection 名稱:輸入Azure SQL Database連線名稱。
可選擇 「測試連線 」來測試連線,然後選擇 「儲存」。
建立 Amazon S3 數據連線
你可以使用 Azure Machine Learning CLI、Azure Machine Learning SDK for Python,或 機器學習 Studio,來建立 Amazon S3 資料連線。
要建立 Amazon S3 資料連線,先組譯一個定義連線的 YAML 檔案,然後執行 Azure CLI 或 Python SDK 指令或腳本呼叫該 YAML 檔案。 對於 Python SDK,你也可以直接指定連線資訊,而不必使用 YAML 檔案。
要使用 Azure Machine Learning CLI 建立 Amazon S3 資料連線,首先組合一個定義連線的 YAML 檔案,然後執行 Azure CLI 指令呼叫該 YAML 檔案。
建立以下定義 Amazon S3 連線的 YAML 檔案。 提供 <connection-name>,並將 <s3-bucket-name>、<access-key-id> 和 <secret-access-key> 預留位置,替換為您 Amazon S3 帳戶中的值。 將檔案儲存為名稱類似 my_amazons3_connection.yaml 的檔案。
$schema: http://azureml/sdk-2-0/Connection.json
type: s3
name: <connection-name>
target: <s3-bucket-name>
credentials:
type: access_key
access_key_id: <access-key-id>
secret_access_key: <secret-access-key>
你可以在 機器學習 Studio 建立 Amazon S3 資料的連線,並用這個連線執行資料匯入作業。 使用者名稱/密碼憑證會安全地儲存在與工作空間相關的金鑰庫中。
在 Azure Machine Learning 工作室 建立資料連線:
在你的 機器學習 工作區中,選擇左側導覽選單中 資產 下的 數據。
在 資料 頁面,選擇 資料連接 標籤,然後選擇 連接。
截圖顯示在 Azure Machine Learning Studio 中新資料連線的開始。
要建立連線,請執行以下 CLI 指令,並提供你的 YAML 檔名作為 <yaml-filename> 佔位符。
az ml connection create --file <yaml-filename>.yaml
要透過呼叫 YAML 檔案建立 Amazon S3 連線,執行以下 Python 腳本,將 <yaml-filename> 佔位符替換成你的 YAML 檔名。
from azure.ai.ml import MLClient, load_workspace_connection
ml_client = MLClient.from_config()
wps_connection = load_workspace_connection(source="./<yaml-filename>.yaml")
ml_client.connections.create_or_update(workspace_connection=wps_connection)
直接創作
若要直接指定連線資訊而不使用 YAML 檔案,請執行以下 Python 腳本。 提供一個 <connection-name>,並將 <s3-bucket-name>、<access-key-id> 和 <secret-access-key> 佔位符替換為你的 Amazon S3 帳號值。
from azure.ai.ml import MLClient
from azure.ai.ml.entities import WorkspaceConnection
from azure.ai.ml.entities import AccessKeyConfiguration
target=<s3-bucket-name>
name=<connection-name>
wps_connection=WorkspaceConnection(name=name,
type="s3",
target= target,
credentials= AccessKeyConfiguration(access_key_id="<access-key-id>",secret_access_key="<secret-access-key>")
)
ml_client.connections.create_or_update(workspace_connection=wps_connection)
在 建立連線 畫面,請填寫以下資訊:
-
服務:選擇 S3。
-
目標:輸入您的 Amazon S3 儲存桶名稱。
-
認證類型:選擇 存取金鑰。
-
存取鑰匙 ID:輸入您的 Amazon S3 存取鑰匙 ID。
-
秘密存取金鑰:輸入您的 Amazon S3 秘密存取金鑰。
-
連線名稱:輸入 Amazon S3 連線的名稱。
可選擇 「測試連線 」來測試連線,然後選擇 「儲存」。
建立外部非資料連線
你也可以建立非資料的 Azure Machine Learning 連接,連結到你程式碼中使用的外部服務。 本節說明如何建立以下非資料連線:
- Git
- Python 資料流
- Azure Container Registry
- 通用容器登錄
- API 金鑰
建立一個 Git 連線
你可以用 Azure CLI、Python SDK 或 機器學習 Studio 建立 Git 連線。
要使用 Azure CLI 建立 Git 連線,請使用以下其中一個 YAML 檔案來定義連線。 檔案名稱可以像 git-connection.yml這樣。
若要使用個人存取權杖(PAT)連線,請提供一個 <connection-name>,並將 <account>、<repo> 和 <PAT> 這些佔位符替換成你的 Git 帳號、倉庫和 PAT 的值。
name: <connection-name>
type: git
target: https://github.com/<account>/<repo>
credentials:
type: pat
pat: <PAT>
若要在不使用憑證的情況下連接公開倉庫,請提供一個 <connection-name>,並將<account> 和 <repo>兩個佔位符替換成你的值。
name: <connection-name>
type: git
target: https://github.com/<account>/<repo>
透過執行以下指令建立 Azure Machine Learning 連線,並提供你的 YAML 檔名作為 <yaml-filename> 佔位符。
az ml connection create --file <yaml-filename>.yaml
要使用 Python SDK 建立與 Git 倉庫的連結,請使用以下腳本。 你使用 GitHub 個人存取權杖(PAT)來驗證連線。 提供<connection-name>,並將<account>、<repo>和<PAT>佔位符替換成你的值。
from azure.ai.ml.entities import WorkspaceConnection
from azure.ai.ml.entities import UsernamePasswordConfiguration, PatTokenConfiguration
name = "<connection-name>"
target = "https://github.com/<account>/<repo>"
wps_connection = WorkspaceConnection(
name=name,
type="git",
target=target,
credentials=PatTokenConfiguration(pat="<PAT>"),
)
ml_client.connections.create_or_update(workspace_connection=wps_connection)
要在 機器學習 Studio 建立 Git 連線:
在 Azure Machine Learning 工作室 中,於左側導覽中選擇 管理,接著選擇 Connections,然後選擇 Connect。
在 「新增外部資產連線 」畫面,往下滑到 「其他資源類型」,然後選擇 Git。
在 「Connect a Git repository」 畫面下,在 Endpoint 輸入 Git 倉庫的路徑,並在 Personal access token 輸入你的 Git 個人存取權杖(PAT)。 輸入 連線名稱,然後選擇 新增連線。
Azure Machine Learning Studio 使用者介面中的 Git 連線畫面截圖。
Python 資料流
你可以使用 Azure CLI、Python SDK 或 機器學習 Studio 建立連結到 Python 訂閱源。
請使用以下 YAML 檔案之一定義 Python feed 連線。 檔案名稱可以像 python-feed-connection.yml那樣。
若要使用 PAT 連線,請提供 <connection-name>,並將 <feed-url> 與 <PAT> 預留位置替換為摘要的值。
name: <connection-name>
type: python_feed
target: https://<feed-url>
credentials:
type: pat
pat: <PAT>
若要使用使用者名稱與密碼連線,請提供 <connection-name>,並將 <feed-url>、<username> 與 <password> 預留位置替換為摘要的值。
name: <connection-name>
type: python_feed
target: https://<feed-url>
credentials:
type: username_password
username: <username>
password: <password>
若要在不使用憑證的情況下連接公開訂閱源,請提供 <connection-name>,並將 <feed-url> 佔位符替換成你的 Python 訂閱源 URL。
name: <connection-name>
type: python_feed
target: https://<feed-url>
透過執行以下指令建立 Azure Machine Learning 連線,並提供你的 YAML 檔名作為 <yaml-filename> 佔位符。
az ml connection create --file <yaml-filename>.yaml
請使用以下腳本透過 Python SDK 建立 Python 資料流連線。 請提供一個 <connection-name>,並將 <feed-url> 佔位符替換成你的 Python feed URL。
你可以用 PAT 或使用者名稱和密碼來驗證連線,或是不使用憑證連接公開資訊流。 對於 PAT 認證類型,請提供你的 PAT 作為 <PAT> 佔位符。 對於使用者名稱-密碼認證類型,名稱/密碼值應該以 URL 編碼。
若要改用使用者名稱/密碼或不驗證,而不是使用 PAT,請取消註解下列指令碼中適當的一行或多行,並將 credentials=PatTokenConfiguration(pat="<PAT>"), 這一行加上註解。
from azure.ai.ml.entities import WorkspaceConnection
from azure.ai.ml.entities import UsernamePasswordConfiguration, PatTokenConfiguration
# import urllib.parse
# username = urllib.parse.quote(os.environ["FEED_USERNAME"], safe="")
# password = urllib.parse.quote(os.environ["FEED_PASSWORD"], safe="")
name = "<connection-name>"
target = "https://<feed-url>"
wps_connection = WorkspaceConnection(
name=name,
type="python_feed",
target=target,
#credentials=UsernamePasswordConfiguration(username=username, password=password),
credentials=PatTokenConfiguration(pat="<PAT>"),
#credentials=None
)
ml_client.connections.create_or_update(workspace_connection=wps_connection)
要在 機器學習 Studio 建立與 Python 資料流的連結:
在你的 Azure Machine Learning 工作室 工作區中,在左側導覽中選擇 Manage 下的 Connections,然後選擇 Connect。
在新增外部資產畫面中,向下捲動至其他資源類型,然後選擇Python feed。
在連接 Python 摘要畫面上:
- 在 Endpoint 輸入 Git 儲存庫的路徑。
- 驗證時選擇無、PAT或使用者名稱密碼,並提供適當的數值。
- 提供 一個連線名稱。
選擇 新增連線。
Azure Container Registry
你可以使用 Azure CLI、Python SDK 或 機器學習 studio 建立與 Azure Container Registry 的連線。
請使用以下 YAML 檔案來定義與 Azure Container Registry 的連線,並進行使用者名稱/密碼驗證。
name: <connection-name>
type: container_registry
target: https://<container-registry-url>
credentials:
type: username_password
username: <username>
password: <password>
要建立連線,請執行以下指令:
az ml connection create --file connection.yaml
以下範例建立一個 Azure Container Registry 連線:
from azure.ai.ml.entities import WorkspaceConnection
from azure.ai.ml.entities import UsernamePasswordConfiguration
# If using username/password, the name/password values should be url-encoded
import urllib.parse
username = os.environ["REGISTRY_USERNAME"]
password = os.environ["REGISTRY_PASSWORD"]
name = "my_acr_conn"
target = "https://iJ5kL6mN7.core.windows.net/mycontainer"
wps_connection = WorkspaceConnection(
name=name,
type="container_registry",
target=target,
credentials=UsernamePasswordConfiguration(username=username, password=password),
)
ml_client.connections.create_or_update(workspace_connection=wps_connection)
在 機器學習 Studio 中建立到 Azure Container Registry 的連接:
在你的 Azure Machine Learning 工作區中,在左側導航中選擇 Manage 下的 Connections,然後選擇 Connect。
在 「新增外部資產連線 」畫面,往下滑到 「其他資源類型」,並選擇 容器登錄檔。
在端點下輸入您的 Azure Container Registry 路徑,於驗證選取無或使用者名稱密碼並填入適當的值,然後輸入連線名稱。
選擇 新增連線。
通用容器註冊系統
GenericContainerRegistry 工作區連線指定一個外部登錄檔,如 Nexus 或 Artifactory,用於映像建置。 環境映像檔會從指定的登錄檔推送,先前的快取則被忽略。 你可以使用 Azure CLI、Python SDK 或 機器學習 Studio 建立一個通用容器登錄檔的連線。
對於 Azure CLI 和 Python SDK,以下範例 YAML 檔案定義了一個通用的容器登錄連接。 用你自己的數值更新範例值。
#myenv.yml
$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: docker-image-plus-conda-example
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04
type: python_feed
conda_file: conda_dep.yml
description: Environment created from a Docker image plus Conda environment
#conda_dep.yml
name: project_environment
dependencies:
- python=3.10
- pip:
- azureml-defaults
channels:
- anaconda
- conda-forge
#connection.yml
name: ws_conn_generic_container_registry
type: container_registry
target: https://test-registry.com
credentials:
type: username_password
username: myusername
password: <password>
#hello_world_job.yml
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world"
environment: azureml:myenv@latest
你也可以在 Studio 裡建立一個通用容器登錄(預覽)連線。
在 Azure Machine Learning Studio 中,選擇左側導覽中的 Manage 下的 Connections,然後選擇 Connect。
在「新增外部資產連線」畫面中,選擇「其他資源類型」中的「通用容器登錄檔(預覽」)。
執行以下指令,利用前面的 YAML 檔案和你的憑證建立連線。 用你自己的數值更新範例值。
az ml connection create --file connection.yml --credentials username=myusername password=<password> --resource-group my-resource-group --workspace-name my-workspace
要建立環境,請執行以下指令:
az ml environment create --name docker-image-plus-conda-example --version 1 --file myenv.yml --conda-file conda_dep.yml --image mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04 --resource-group my-resource-group --workspace-name my-workspace
執行以下指令以確認環境是否已成功建立。
az ml environment show --name docker-image-plus-conda-example --version 1 --resource-group my-resource-group --workspace-name my-workspace
以下 Python 範例腳本利用上述範例檔案建立通用容器登錄連結。 用你自己的數值更新範例值。
import os
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential
from azure.ai.ml.entities import Environment
from azure.ai.ml.entities import WorkspaceConnection
from azure.ai.ml.entities import UsernamePasswordConfiguration
from azureml.core.conda_dependencies import CondaDependencies
from azure.ai.ml import command
username = os.environ["REGISTRY_USERNAME"]
password = os.environ["REGISTRY_PASSWORD"]
# Enter details of Azure Machine Learning workspace
subscription_id = "00000000-0000-0000-0000-000000000000"
resource_group = "my-resource-group"
workspace = "my-workspace"
ml_client = MLClient( DefaultAzureCredential(), subscription_id, resource_group, workspace)
credentials = UsernamePasswordConfiguration(username=username, password=password)
# Create GenericContainerRegistry workspace connection for a generic registry
ws_connection = WorkspaceConnection(name="ws_conn_generic_container_registry", target="https://test-registry.com", type="GenericContainerRegistry", credentials=credentials)
ml_client.connections.create_or_update(ws_connection)
# Create an environment
env_docker_conda = Environment(image="mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04", conda_file="conda_dep.yml", name="docker-image-plus-conda-example", description="Environment created from a Docker image plus Conda environment.")
ml_client.environments.create_or_update(env_docker_conda)
job = command(command="echo 'hello world'", environment=env_docker_conda,display_name="v2-job-example")
returned_job = ml_client.create_or_update(job)
在 連結容器註冊表 畫面:
- 在 Endpoint 輸入容器登錄檔的路徑。
- 請輸入你的 使用者名稱 和 密碼。
- 提供 一個連線名稱。
選擇 新增連線。
API 金鑰
建立以下 YAML 檔案以定義與 API 金鑰的連接。 用你自己的數值更新範例值。
name: my_api_key
type: api_key
api_base: "https://myapi.core.windows.net/mycontainer"
api_key: "aAbBcCdD"
要建立連線,請執行以下指令:
az ml connection create --file connection.yaml
為了更好的安全性,請將該值從 YAML 檔案中移除 api_key ,並在命令列中提供:
az ml connection create --file connection.yml --set api_key="aAbBcCdD"
以下 Python SDK 範例建立 API 金鑰連線。 用你自己的數值更新範例值。
from azure.ai.ml.entities import WorkspaceConnection
from azure.ai.ml.entities import UsernamePasswordConfiguration, ApiKeyConfiguration
name = "my_api_key"
target = "https://myapi.core.windows.net/mycontainer"
wps_connection = WorkspaceConnection(
name=name,
type="apikey",
target=target,
credentials=ApiKeyConfiguration(key="aAbBcCdD"),
)
ml_client.connections.create_or_update(workspace_connection=wps_connection)
要在 機器學習 Studio 建立與 API 金鑰的連結:
在你的Azure Machine Learning工作區中,選擇左側導覽的Manage下的Connections,然後選擇Connect。
在 「新增外部資產連線 」畫面,向下捲動到 「其他資源類型」,並選擇 API 金鑰。
在 端點(Endpoint)輸入你的 API 金鑰路徑,在 金鑰(Key)輸入你的 API 金鑰祕密,輸入 連線名稱,然後選擇 新增連線。
相關內容