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
Un abonnement Azure. Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer. Essayez la version gratuite ou payante d’Azure Machine Learning.
Le kit de développement logiciel (SDK) Azure Machine Learning pour Python.
Un espace de travail Azure Machine Learning.
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
Contenu connexe
Si vous utilisez une connexion de données (Snowflake DB, Amazon S3 ou Azure SQL DB), ces articles offrent d’autres informations :