Condividi tramite


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

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

Se si usa una connessione dati (Snowflake DB, Amazon S3 o database Azure SQL), questi articoli offrono altre informazioni: