Creare connessioni (anteprima)
SI APPLICA A:Estensione ML dell'interfaccia della riga di comando di Azure v2 (corrente)Python SDK azure-ai-ml v2 (corrente)
Questo articolo illustra come connettersi alle origini dati che si trovano all'esterno di Azure per rendere tali dati disponibili per i servizi di Azure Machine Learning. Le connessioni di Azure fungono da proxy dell'insieme di credenziali delle chiavi e le interazioni con le connessioni sono interazioni dirette con un insieme di credenziali delle chiavi di Azure. La connessione di Azure Machine Learning archiviano in modo sicuro le risorse di dati con nome utente e password, come segreti, in un insieme di credenziali delle chiavi. Il controllo degli accessi in base al ruolo dell'insieme di credenziali delle chiavi controlla l'accesso a tali risorse di dati. Per questa disponibilità dei dati, Azure supporta le connessioni a queste origini esterne:
- DB Snowflake
- Amazon S3
- DB di Azure SQL
Importante
Questa funzionalità è attualmente in anteprima pubblica. Questa versione di anteprima viene fornita senza contratto di servizio, pertanto se ne sconsiglia l’uso per i carichi di lavoro in ambienti di produzione. Alcune funzionalità potrebbero non essere supportate o potrebbero presentare funzionalità limitate.
Per altre informazioni, vedere le Condizioni supplementari per l'uso delle anteprime di Microsoft Azure.
Prerequisiti
Una sottoscrizione di Azure. Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare. Provare la versione gratuita o a pagamento di Azure Machine Learning.
Un'area di lavoro di Azure Machine Learning.
Importante
Una connessione di Azure Machine Learning archivia in modo sicuro le credenziali passate durante la creazione della connessione in Azure Key Vault dell'area di lavoro. Una connessione fa riferimento alle credenziali dal percorso di archiviazione dell'insieme di credenziali delle chiavi per l'ulteriore uso. Non è necessario gestire direttamente le credenziali dopo l'archiviazione nell'insieme di credenziali delle chiavi. È possibile archiviare le credenziali nel file YAML. Un comando dell'interfaccia della riga di comando o SDK è in grado di eseguirne l'override. È consigliabile evitare di archiviare le credenziali in un file YAML, poiché una violazione della sicurezza potrebbe causare una perdita delle credenziali.
Nota
Per un'importazione corretta dei dati, verificare di aver installato il pacchetto azure-ai-ml più recente (versione 1.5.0 o successiva) per SDK e l'estensione ml (versione 2.15.1 o successiva).
Se si dispone di un pacchetto SDK o di un'estensione dell'interfaccia della riga di comando precedente, rimuovere la versione precedente e reinstallare con il codice illustrato nella sezione della scheda. Seguire le istruzioni per SDK e interfaccia della riga di comando, come illustrato di seguito:
Versioni del codice
az extension remove -n ml
az extension add -n ml --yes
az extension show -n ml #(the version value needs to be 2.15.1 or later)
Creare una connessione al database Snowflake
Questo file YAML crea una connessione al database Snowflake. Assicurarsi di aggiornare i valori appropriati:
# my_snowflakedb_connection.yaml
$schema: http://azureml/sdk-2-0/Connection.json
type: snowflake
name: my-sf-db-connection # add your datastore name here
target: jdbc:snowflake://<myaccount>.snowflakecomputing.com/?db=<mydb>&warehouse=<mywarehouse>&role=<myrole>
# add the Snowflake account, database, warehouse name and role name here. If no role name provided it will default to PUBLIC
credentials:
type: username_password
username: <username> # add the Snowflake database user name here or leave this blank and type in CLI command line
password: <password> # add the Snowflake database password here or leave this blank and type in CLI command line
Creare la connessione Azure Machine Learning nell'interfaccia della riga di comando:
Opzione 1: Usare il nome utente e la password contenuti nel file YAML
az ml connection create --file my_snowflakedb_connection.yaml
Opzione 2: Eseguire l'override del nome utente e della password nella riga di comando
az ml connection create --file my_snowflakedb_connection.yaml --set credentials.
username="<username>" credentials.
password="<password>"
Creare una connessione al database Snowflake che usa OAuth
Le informazioni contenute in questa sezione descrivono come creare una connessione al database Snowflake che usa OAuth per l'autenticazione.
Importante
Prima di seguire i passaggi descritti in questa sezione, è necessario Configurare Azure per rilasciare token OAuth per conto del client. Questa configurazione crea un'entità servizio, necessaria per la connessione OAuth. Per creare la connessione sono necessarie le seguenti informazioni:
- ID client: l’ID dell'entità servizio
- Segreto client: il segreto dell’entità servizio
- ID tenant: ID del tenant di Microsoft Entr ID
Questo file YAML crea una connessione al database Snowflake che usa OAuth. Assicurarsi di aggiornare i valori appropriati:
# my_snowflakedb_connection.yaml
name: snowflake_service_principal_connection
type: snowflake
# Add the Snowflake account, database, warehouse name, and role name here. If no role name is provided, it will default to PUBLIC.
target: jdbc:snowflake://<myaccount>.snowflakecomputing.com/?db=<mydb>&warehouse=<mywarehouse>&scope=<scopeForServicePrincipal>
credentials:
type: service_principal
client_id: <client-id> # The service principal's client id
client_secret: <client-secret> # The service principal's client secret
tenant_id: <tenant-id> # The Microsoft Entra ID tenant id
Creare la connessione Azure Machine Learning nell'interfaccia della riga di comando:
az ml connection create --file my_snowflakedb_connection.yaml
È anche possibile eseguire l'override delle informazioni nel file YAML nella riga di comando:
az ml connection create --file my_snowflakedb_connection.yaml --set credentials.client_id="my-client-id" credentials.client_secret="my-client-secret" credentials.tenant_id="my-tenant-id"
Creare una connessione al database Azure SQL
Questo script YAML crea una connessione al database Azure SQL. Assicurarsi di aggiornare i valori appropriati:
# my_sqldb_connection.yaml
$schema: http://azureml/sdk-2-0/Connection.json
type: azure_sql_db
name: my-sqldb-connection
target: Server=tcp:<myservername>,<port>;Database=<mydatabase>;Trusted_Connection=False;Encrypt=True;Connection Timeout=30
# add the sql servername, port addresss and database
credentials:
type: sql_auth
username: <username> # add the sql database user name here or leave this blank and type in CLI command line
password: <password> # add the sql database password here or leave this blank and type in CLI command line
Creare la connessione Azure Machine Learning nell'interfaccia della riga di comando:
Opzione 1: Usare il nome utente/la password contenuto/a nel file YAML
az ml connection create --file my_sqldb_connection.yaml
Opzione 2: Eseguire l'override del nome utente e della password nel file YAML
az ml connection create --file my_sqldb_connection.yaml --set credentials.
username="<username>" credentials.
password="<password>"
Creare una connessione a Amazon S3
Creare una connessione a Amazon S3 con il file YAML seguente. Assicurarsi di aggiornare i valori appropriati:
# my_s3_connection.yaml
$schema: http://azureml/sdk-2-0/Connection.json
type: s3
name: my_s3_connection
target: <mybucket> # add the s3 bucket details
credentials:
type: access_key
access_key_id: bbbbbbbb-1c1c-2d2d-3e3e-444444444444 # add access key id
secret_access_key: H4iJ5kL6mN7oP8qR9sT0uV1wX2yZ3a # add access key secret
Creare la connessione Azure Machine Learning nell'interfaccia della riga di comando:
az ml connection create --file my_s3_connection.yaml
Connessioni non dati
È possibile usare questi tipi di connessione per connettersi a Git:
- Feed Python
- Registro Azure Container
- una connessione che usa una chiave API
Queste connessioni non sono connessioni dati, ma vengono usate per connettersi a servizi esterni da usare nel codice.
Git
Creare una connessione Git con uno dei file YAML seguenti. Assicurarsi di aggiornare i valori appropriati:
Connettersi usando un token di accesso personale (PAT):
#Connection.yml name: test_ws_conn_git_pat type: git target: https://github.com/contoso/contosorepo credentials: type: pat pat: dummy_pat
Connettersi a un repository pubblico (nessuna credenziale):
#Connection.yml name: git_no_cred_conn type: git target: https://https://github.com/contoso/contosorepo
Creare la connessione Azure Machine Learning nell'interfaccia della riga di comando:
az ml connection create --file connection.yaml
Feed Python
Creare una connessione a un feed Python con uno dei file YAML seguenti. Assicurarsi di aggiornare i valori appropriati:
Connettersi usando un token di accesso personale (PAT):
#Connection.yml name: test_ws_conn_python_pat type: python_feed target: https://test-feed.com credentials: type: pat pat: dummy_pat
Connettersi usando un nome utente e una password:
name: test_ws_conn_python_user_pass type: python_feed target: https://test-feed.com credentials: type: username_password username: <username> password: <password>
Connettersi a un feed pubblico (nessuna credenziale):
name: test_ws_conn_python_no_cred type: python_feed target: https://test-feed.com3
Creare la connessione Azure Machine Learning nell'interfaccia della riga di comando:
az ml connection create --file connection.yaml
Registro Container
Creare una connessione a un Registro Azure Container con uno dei file YAML seguenti. Assicurarsi di aggiornare i valori appropriati:
Connettersi usando un nome utente e una password:
name: test_ws_conn_cr_user_pass type: container_registry target: https://test-feed.com2 credentials: type: username_password username: <username> password: <password>
Creare la connessione Azure Machine Learning nell'interfaccia della riga di comando:
az ml connection create --file connection.yaml
Chiave API
Nell'esempio seguente si illustra la creazione di una connessione chiave API:
from azure.ai.ml.entities import WorkspaceConnection
from azure.ai.ml.entities import UsernamePasswordConfiguration, ApiKeyConfiguration
name = "my_api_key"
target = "https://L6mN7oP8q.core.windows.net/mycontainer"
wps_connection = WorkspaceConnection(
name=name,
type="apikey",
target=target,
credentials=ApiKeyConfiguration(key="9sT0uV1wX"),
)
ml_client.connections.create_or_update(workspace_connection=wps_connection)
Registro Contenitori generici
Usando la connessione all'area di lavoro GenericContainerRegistry, è possibile specificare un registro esterno, ad esempio Nexus o Artifactory, per le compilazioni di immagini. Le immagini dell'ambiente vengono spostate dal Registro di sistema specificato e la cache precedente viene ignorata.
Creare una connessione usando i file YAML seguenti. Assicurarsi di aggiornare i valori appropriati:
#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: <username>
password: <password>
#hello_world_job.yml
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world"
environment: azureml:<env name>@latest
Creare una connessione dal file YAML con le credenziali:
az ml connection create --file connection.yaml --credentials username=<username> password=<password> --resource-group my-resource-group --workspace-name my-workspace
Creare un ambiente
az ml environment create --name my-env --version 1 --file my_env.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
È possibile verificare che l'ambiente sia stato creato correttamente
az ml environment show --name my-env --version 1 --resource-group my-resource-group --workspace-name my-workspace
Contenuto correlato
Se si usa una connessione dati (Snowflake DB, Amazon S3 o database Azure SQL), questi articoli offrono altre informazioni: