Compartir a través de


Crear conexiones (versión preliminar)

SE APLICA A:Extensión ML de la CLI de Azure v2 (actual)SDK de Python azure-ai-ml v2 (actual)

En este artículo, aprenderá a conectarse a orígenes de datos ubicados fuera de Azure para que estén disponibles y los puedan usar los servicios de Azure Machine Learning. Las conexiones de Azure sirven como servidores proxy del almacén de claves y las interacciones con las conexiones son interacciones directas con un almacén de claves de Azure. Una conexión de Azure Machine Learning almacena de forma segura los recursos de datos de nombre de usuario y contraseña, como secretos, en un almacén de claves. El RBAC del almacén de claves controla el acceso a estos recursos de datos. Para esta disponibilidad de datos, Azure admite conexiones a estos orígenes externos:

  • Base de datos de Snowflake
  • Amazon S3
  • Azure SQL DB

Importante

Esta característica actualmente está en su versión preliminar pública. Esta versión preliminar se ofrece sin un Acuerdo de Nivel de Servicio y no se recomienda para cargas de trabajo de producción. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas.

Para más información, consulte Términos de uso complementarios de las Versiones Preliminares de Microsoft Azure.

Requisitos previos

Importante

Una conexión de Azure Machine Learning almacena de forma segura las credenciales que se pasan durante la creación de la conexión en el área de trabajo de Azure Key Vault. Una conexión hace referencia a las credenciales de la ubicación de almacenamiento del almacén de claves para su uso posterior. No tiene que tratar directamente con las credenciales después de almacenarlas en el almacén de claves. Tiene la opción de almacenar las credenciales en el archivo YAML. Un comando de la CLI o un SDK pueden invalidarlos. Se recomienda evitar el almacenamiento de credenciales en un archivo YAML, ya que una infracción de seguridad podría provocar una pérdida de credenciales.

Nota:

Para una importación correcta de datos, compruebe que ha instalado el paquete azure-ai-ml más reciente (versión 1.5.0 o posterior) para el SDK y la extensión de ML (versión 2.15.1 o posterior).

Si tiene un paquete de SDK o una extensión de CLI más antiguos, elimine el antiguo e instale el nuevo con el código que se muestra en la sección de pestañas. Siga las instrucciones del SDK y la CLI, como se muestra aquí:

Versiones de código

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)

Creación de una conexión de base de datos de Snowflake

Este archivo YAML crea una conexión de base de datos de Snowflake. Asegúrese de actualizar los valores adecuados:

# 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

Cree la conexión de Azure Machine Learning en la CLI:

Opción 1: Usar el nombre de usuario y la contraseña en el archivo YAML

az ml connection create --file my_snowflakedb_connection.yaml

Opción 2: Invalidar el nombre de usuario y la contraseña en la línea de comandos

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

Creación de una conexión de base de datos de Snowflake que usa OAuth

En la información de esta sección se describe cómo crear conexiones de base de datos de Snowflake que usen OAuth para autenticarse.

Importante

Antes de seguir los pasos de esta sección, primero configure Azure para emitir tokens de OAuth en nombre del cliente. Esta configuración crea una entidad de servicio, que es necesaria para la conexión de OAuth. Necesita la siguiente información para crear la conexión:

  • Id. de cliente: id. de la entidad de servicio
  • Secreto de cliente: el secreto de cliente de la entidad de servicio
  • Id. de inquilino: id. del inquilino de Microsoft Entra ID

Este archivo YAML crea una conexión de base de datos de Snowflake que usa OAuth. Asegúrese de actualizar los valores adecuados:

# 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

Cree la conexión de Azure Machine Learning en la CLI:

az ml connection create --file my_snowflakedb_connection.yaml

También puede invalidar la información del archivo YAML en la línea de comandos:

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"

Creación de una conexión de base de datos de Azure SQL

Este script YAML crea una conexión de base de datos Azure SQL. Asegúrese de actualizar los valores adecuados:

# 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

Cree la conexión de Azure Machine Learning en la CLI:

Opción 1: Usar el nombre de usuario o la contraseña del archivo YAML

az ml connection create --file my_sqldb_connection.yaml

Opción 2: Invalidar el nombre de usuario y la contraseña en el archivo YAML

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

Creación de una conexión de Amazon S3

Cree una conexión de Amazon S3 con el siguiente archivo YAML. Asegúrese de actualizar los valores adecuados:

# 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

Cree la conexión de Azure Machine Learning en la CLI:

az ml connection create --file my_s3_connection.yaml

Conexiones que no son de datos

Puede usar estos tipos de conexión para conectarse a Git:

  • Fuente de Python
  • Azure Container Registry
  • una conexión que usa una clave de API

Estas conexiones no son conexiones de datos, pero se usan para conectarse a servicios externos para su uso en el código.

Git

Cree una conexión de Git con uno de los siguientes archivos YAML. Asegúrese de actualizar los valores adecuados:

  • Conectarse mediante un token de acceso personal (PAT):

    #Connection.yml
    name: test_ws_conn_git_pat
    type: git
    target: https://github.com/contoso/contosorepo
    credentials:
        type: pat
        pat: dummy_pat
    
  • Conectarse a un repositorio público (sin credenciales):

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

Cree la conexión de Azure Machine Learning en la CLI:

az ml connection create --file connection.yaml

Fuente de Python

Cree una conexión a una fuente de Python con uno de los siguientes archivos YAML. Asegúrese de actualizar los valores adecuados:

  • Conectarse mediante un token de acceso personal (PAT):

    #Connection.yml
    name: test_ws_conn_python_pat
    type: python_feed
    target: https://test-feed.com
    credentials:
        type: pat
        pat: dummy_pat
    
  • Conectarse mediante un nombre de usuario y una contraseña:

    name: test_ws_conn_python_user_pass
    type: python_feed
    target: https://test-feed.com
    credentials:
        type: username_password
        username: <username>
        password: <password>
    
    
  • Conectarse a una fuente pública (sin credenciales):

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

Cree la conexión de Azure Machine Learning en la CLI:

az ml connection create --file connection.yaml

Container Registry

Cree una conexión a una instancia de Azure Container Registry con uno de los siguientes archivos YAML. Asegúrese de actualizar los valores adecuados:

  • Conectarse mediante un nombre de usuario y una contraseña:

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

Cree la conexión de Azure Machine Learning en la CLI:

az ml connection create --file connection.yaml

Clave de API

En el ejemplo siguiente se crea una conexión de clave de 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 de contenedor genérico

Con la conexión de área de trabajo GenericContainerRegistry, puede especificar un registro externo, como Nexus o Artifactory, para las compilaciones de imágenes. Las imágenes del entorno se insertan desde el registro especificado y se omite la memoria caché anterior.

Cree una conexión con los siguientes archivos YAML. Asegúrese de actualizar los valores adecuados:

#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

Cree una conexión desde el archivo YAML con sus credenciales:

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

Creación del entorno

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

Puede comprobar si el entorno se creó correctamente:

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

Si usa una conexión de datos (base de datos de Snowflake, Amazon S3 o base de datos de Azure SQL), consulte estos artículos para más información: