Créer des connexions (préversion)

S’APPLIQUE À :Extension Azure CLI v2 (actuelle)Kit de développement logiciel (SDK) Python azure-ai-ml v2 (version actuelle)

Dans cet article, découvrez comment se connecter à des sources de données situées en dehors d’Azure pour mettre ces données à disposition des services Azure Machine Learning. Les connexions Azure servent de proxy de coffre-fort et les interactions avec les connexions sont des interactions directes avec un coffre-fort Azure. Une connexion Azure Machine Learning stocke en toute secrets les ressources de données de nom d’utilisateur et de mot de passe, en tant que secrets, dans un coffre de clés. Le RBAC du coffre de clés contrôle l’accès à ces ressources de données. Pour cette disponibilité des données, Azure prend en charge les connexions à ces sources externes :

  • Base de données Snowflake
  • Amazon S3
  • Azure SQL DB

Important

Cette fonctionnalité est actuellement disponible en préversion publique. Cette préversion est fournie sans contrat de niveau de service et n’est pas recommandée pour les charges de travail de production. Certaines fonctionnalités peuvent être limitées ou non prises en charge.

Pour plus d’informations, consultez Conditions d’Utilisation Supplémentaires relatives aux Évaluations Microsoft Azure.

Prérequis

Important

Une connexion Azure Machine Learning stocke en toute sécurité les informations d’identification transmises lors de la création de la connexion dans l’espace de travail Azure Key Vault. Une connexion référence les informations d’identification de l’emplacement du stockage du coffre de clés pour une utilisation ultérieure. Vous n’avez pas besoin de traiter directement les informations d’identification après leur stockage dans le coffre de clés. Vous pouvez stocker les informations d’identification dans le fichier YAML. Une commande CLI ou un Kit de développement logiciel (SDK) peut les remplacer. Nous vous recommandons d’éviter le stockage des informations d’identification dans un fichier YAML, car une violation de la sécurité pourrait entraîner une fuite des informations d’identification.

Remarque

Pour une importation correcte de données, veuillez vérifier l’installation du dernier package azure-ai-ml (version 1.5.0 ou ultérieure) pour le Kit de développement logiciel (SDK) et l’extension ml (version 2.15.1 ou ultérieure).

Si vous disposez d’un package Kit de développement logiciel (SDK) ou d’une extension d’interface CLI plus ancien, supprimez l’ancien package et installez le nouveau avec le code affiché dans la section onglet. Suivez les instructions pour le SDK et l’interface CLI présentées ici :

Versions de code

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)

Créer une connexion à la base de données Snowflake

Ce fichier YAML crée une connexion à la base de données Snowflake. Veillez à mettre à jour les valeurs appropriées :

# 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

Créer la connexion à Azure Machine Learning dans CLI :

Option 1 : Utilisez le nom d’utilisateur et le mot de passe dans le fichier YAML

az ml connection create --file my_snowflakedb_connection.yaml

Option 2 : Remplacez le nom d’utilisateur et le mot de passe sur la ligne de commande

az ml connection create --file my_snowflakedb_connection.yaml --set credentials.
username="<username>" credentials.
password="<password>"

Créer une connexion de base de données Snowflake qui utilise OAuth

Les informations de cette section expliquent comment créer une connexion de base de données Snowflake qui utilise OAuth pour permettre l’authentification.

Important

Avant de suivre les étapes de cette section, vous devez d’abord Configurer Azure pour émettre des jetons OAuth au nom du client. Cette configuration crée un principal de service, qui est indispensable pour la connexion OAuth. Vous avez besoin des informations suivantes pour créer la connexion :

  • ID client : ID du principal de service
  • Clé secrète client : secret du principal de service
  • ID de tenant : ID du tenant (locataire) Microsoft Entra ID

Ce fichier YAML crée une connexion de base de données Snowflake qui utilise OAuth. Veillez à mettre à jour les valeurs appropriées :

# 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

Créer la connexion à Azure Machine Learning dans CLI :

az ml connection create --file my_snowflakedb_connection.yaml

Vous pouvez également remplacer les informations du fichier YAML sur la ligne de commande :

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"

Créer une connexion Azure SQL DB

Ce script YAML crée une connexion à la base de données Azure SQL. Veillez à mettre à jour les valeurs appropriées :

# 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

Créer la connexion à Azure Machine Learning dans CLI :

Option 1 : Utilisez le nom d’utilisateur/mot de passe du fichier YAML

az ml connection create --file my_sqldb_connection.yaml

Option 2 : Remplacez le nom d’utilisateur et le mot de passe dans le fichier YAML

az ml connection create --file my_sqldb_connection.yaml --set credentials.
username="<username>" credentials.
password="<password>"

Créer une connexion Amazon S3

Créez une connexion Amazon S3 avec le fichier YAML suivant. Veillez à mettre à jour les valeurs appropriées :

# 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

Créer la connexion à Azure Machine Learning dans CLI :

az ml connection create --file my_s3_connection.yaml

Connexions non-données

Vous pouvez utiliser ces types de connexion pour vous connecter à Git :

  • Flux Python
  • Azure Container Registry
  • une connexion qui utilise une clé API

Ces connexions ne sont pas des connexions de données, mais sont utilisées pour se connecter aux services externes à utiliser dans votre code.

Git

Créez une connexion Git avec l’un des fichiers YAML suivants. Veillez à mettre à jour les valeurs appropriées :

  • Connectez-vous à l’aide d’un jeton d’accès personnel (PAT) :

    #Connection.yml
    name: test_ws_conn_git_pat
    type: git
    target: https://github.com/contoso/contosorepo
    credentials:
        type: pat
        pat: dummy_pat
    
  • Connectez-vous à un référentiel public (aucune information d’identification) :

    #Connection.yml
    
    name: git_no_cred_conn
    type: git
    target: https://https://github.com/contoso/contosorepo
    
    

Créer la connexion à Azure Machine Learning dans CLI :

az ml connection create --file connection.yaml

Flux Python

Créez une connexion à un flux Python avec l’un des fichiers YAML suivants. Veillez à mettre à jour les valeurs appropriées :

  • Connectez-vous à l’aide d’un jeton d’accès personnel (PAT) :

    #Connection.yml
    name: test_ws_conn_python_pat
    type: python_feed
    target: https://test-feed.com
    credentials:
        type: pat
        pat: dummy_pat
    
  • Connectez-vous à l’aide d’un nom d’utilisateur et d’un mot de passe :

    name: test_ws_conn_python_user_pass
    type: python_feed
    target: https://test-feed.com
    credentials:
        type: username_password
        username: <username>
        password: <password>
    
    
  • Connectez-vous à un flux public (aucune information d’identification) :

    name: test_ws_conn_python_no_cred
    type: python_feed
    target: https://test-feed.com3
    

Créer la connexion à Azure Machine Learning dans CLI :

az ml connection create --file connection.yaml

Container Registry

Créez une connexion à Azure Container Registry avec l’un des fichiers YAML suivants. Veillez à mettre à jour les valeurs appropriées :

  • Connectez-vous à l’aide d’un nom d’utilisateur et d’un mot de passe :

    name: test_ws_conn_cr_user_pass
    type: container_registry
    target: https://test-feed.com2
    credentials:
        type: username_password
        username: <username>
        password: <password>
    

Créer la connexion à Azure Machine Learning dans CLI :

az ml connection create --file connection.yaml

Clé API

L’exemple suivant crée une connexion de clé 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)

Registre de conteneurs générique

Vous pouvez, en utilisant la connexion d’espace de travail GenericContainerRegistry, spécifier un registre externe, comme Nexus ou Artifactory, pour des générations d’images. Les images d’environnement sont envoyées (push) à partir du registre spécifié et le cache précédent est ignoré.

Créez une connexion en utilisant les fichiers YAML suivants. Veillez à mettre à jour les valeurs appropriées :

#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

Créez une connexion à partir d’un fichier YAML avec vos informations d’identification :

az ml connection create --file connection.yaml --credentials username=<username> password=<password> --resource-group my-resource-group --workspace-name my-workspace

Créer un environnement

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

Vous pouvez vérifier la création correcte de l’environnement

az ml environment show --name my-env --version 1 --resource-group my-resource-group --workspace-name my-workspace

Si vous utilisez une connexion de données (Snowflake DB, Amazon S3 ou Azure SQL DB), ces articles offrent d’autres informations :