Compartir a través de


Creación de conexiones externas (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 externos para que sus datos estén disponibles para Azure Machine Learning. También aprenderá a conectarse a varios servicios externos que no son de datos. Puede usar la CLI de Azure Machine Learning, el SDK de Azure Machine Learning para Python o Machine Learning Studio para crear estas conexiones.

Una conexión de Azure Machine Learning almacena de forma segura nombres de usuario y contraseñas como secretos en un almacén de claves. Las conexiones de Azure sirven como servidores proxy de Key Vault y las interacciones con las conexiones son interacciones directas con Azure Key Vault. El control de acceso basado en rol (RBAC) de Key Vault administra el acceso a los recursos de datos. No es necesario tratar directamente con las credenciales después de almacenarlas en el almacén de claves.

Azure admite conexiones a los siguientes orígenes externos para la disponibilidad de datos:

  • Snowflake
  • Azure SQL Database
  • Amazon S3

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

  • Una suscripción de Azure con la versión gratuita o de pago de Azure Machine Learning.

  • Un área de trabajo de Azure Machine Learning.

  • La CLI de Azure con la extensión ml instalada en la versión 2.15.1 o posterior.

    Si tiene una versión o extensión de la CLI de Azure anterior, use el código siguiente para desinstalarlo e instalar el nuevo.

    az extension remove -n ml
    az extension add -n ml --yes
    az extension show -n ml 2.15.1
    

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

Puede usar la CLI de Azure Machine Learning, el SDK de Azure Machine Learning para Python o Machine Learning Studio para crear una conexión de datos de Snowflake que use la autenticación de nombre de usuario y contraseña.

También puede usar la CLI de Azure o el SDK de Python para crear una conexión de Snowflake que use OAuth con una entidad de servicio. Machine Learning Studio no admite la creación de conexiones de OAuth.

Creación de una conexión que use la autenticación de nombre de usuario y contraseña

Para crear la conexión de Snowflake, primero ensambla un archivo YAML que define la conexión y, a continuación, ejecute un comando o script que llame al archivo YAML. Para el SDK de Python, también puede especificar la información de conexión directamente sin usar un archivo YAML.

Puede almacenar credenciales en el archivo YAML e invalidar las credenciales almacenadas en la línea de comandos de la CLI de Azure al crear la conexión. Sin embargo, es mejor evitar almacenar credenciales en un archivo, ya que una infracción de seguridad podría provocar una pérdida de credenciales. En su lugar, puede dejar los credentials valores en blanco y proporcionarlos en la línea de comandos.

El siguiente archivo YAML define una conexión de Snowflake que usa la autenticación de nombre de usuario y contraseña. Para crear el archivo, proporcione un <connection-name> y reemplace los marcadores de posición <account>, <database>, <warehouse>, y <role> por los valores de su cuenta de Snowflake. Si no proporciona un <role>, el valor predeterminado es PUBLIC. Guarde el archivo con un nombre como my_snowflake_connection.yaml.

$schema: http://azureml/sdk-2-0/Connection.json
type: snowflake
name: <connection-name>

target: jdbc:snowflake://<account>.snowflakecomputing.com/?db=<database>&warehouse=<warehouse>&role=<role>
credentials:
    type: username_password
    username: <snowflake-username>
    password: <snowflake-password>

Para crear la conexión, ejecute una de las siguientes líneas de comandos, proporcionando el nombre de archivo YAML para el <yaml-filename> marcador de posición.

  • Para usar el nombre de usuario y la contraseña almacenados en el archivo YAML, ejecute el siguiente comando:

    az ml connection create --file <yaml-filename>.yaml
    
  • Para proporcionar el nombre de usuario y la contraseña como parte de la línea de comandos, ejecute el siguiente comando, ingresando su <username> y <password> como marcadores de posición.

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

Uso de la CLI de Azure o el SDK de Python para crear una conexión con la autenticación de OAuth

Puede usar la CLI de Azure o el SDK de Python para crear una conexión de Snowflake que use una entidad de servicio para la autenticación de OAuth.

Importante

Para poder crear la conexión mediante OAuth, primero debe configurar Azure para emitir tokens de OAuth en nombre del cliente. Este proceso de configuración crea la entidad de servicio necesaria para la conexión de OAuth.

Para crear una conexión de OAuth para Azure Machine Learning, necesita la siguiente información:

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

Para crear la conexión, primero ensambla un archivo YAML que define la conexión y, a continuación, ejecute un comando o script que llame al archivo YAML. Para el SDK de Python, también puede especificar la información de conexión directamente sin usar un archivo YAML.

Cree el siguiente archivo YAML para definir una conexión de Snowflake que use OAuth. Proporcione un <connection-name>, y reemplace los marcadores de posición <account>, <database>, <warehouse> y <service-principal-scope> por los valores de la cuenta de Snowflake. En el caso de las credenciales, proporcione <client-id>, <client-secret> y <tenant_id>.

name: <connection-name>
type: snowflake
target: jdbc:snowflake://<account>.snowflakecomputing.com/?db=<database>&warehouse=<warehouse>&scope=<service-principal-scope>
credentials:
  type: service_principal
  client_id: <client-id>
  client_secret: <client-secret>
  tenant_id: <tenant-id>
  • Para crear la conexión con la información de credenciales almacenada en el archivo YAML, ejecute el siguiente comando y reemplace el marcador de posición por el <yaml-filename> nombre de archivo YAML.

    az ml connection create --file <yaml-filename>.yaml
    
  • Para invalidar la información de credenciales en el archivo YAML o proporcionar credenciales en la línea de comandos, ejecute el siguiente comando, ingresando sus valores de <client-id>, <client-secret> y <tenant-id> en los marcadores de posición.

    az ml connection create --file <yaml-filename>.yaml --set credentials.client_id="<client-id>" credentials.client_secret="<client-secret>" credentials.tenant_id="<tenant-id>"
    

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

Puede usar la CLI de Azure Machine Learning, el SDK de Azure Machine Learning para Python o Machine Learning Studio para crear una conexión de datos de Azure SQL Database.

Para crear una conexión de base de datos de Azure SQL, en primer lugar ensamblar un archivo YAML que defina la conexión y, a continuación, ejecute un comando o script del SDK de Azure o python que llame al archivo YAML. Para el SDK de Python, también puede especificar la información de conexión directamente sin usar un archivo YAML.

Cree el siguiente archivo YAML para definir la conexión de Azure SQL Database y guarde el archivo con un nombre como my_azuresqldb_connection.yaml. Proporcione un <connection-name> y reemplace los marcadores de posición <server>, <port> y <database> por los valores adecuados de la base de datos de Azure SQL.

Para credentials, puede almacenar el nombre de usuario y la contraseña de azure SQL Database en este archivo, pero es más seguro dejar los valores en blanco y proporcionarlos en la línea de comandos que crea la conexión.

$schema: http://azureml/sdk-2-0/Connection.json

type: azure_sql_db
name: <connection-name>

target: Server=tcp:<server>,<port>;Database=<database>;Trusted_Connection=False;Encrypt=True;Connection Timeout=30
credentials:
    type: sql_auth
    username: <username>
    password: <password>

Para crear la conexión, ejecute una de las siguientes líneas de comandos de la CLI, proporcionando el nombre de archivo YAML para el <yaml-filename> marcador de posición.

  • Para usar el nombre de usuario y la contraseña almacenados en el archivo YAML, ejecute el siguiente comando:

    az ml connection create --file <yaml-filename>.yaml
    
  • Para proporcionar el nombre de usuario y la contraseña como parte de la línea de comandos, ejecute el siguiente comando, ingresando su <username> y <password> como marcadores de posición.

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

Creación de una conexión de datos de Amazon S3

Puede usar la CLI de Azure Machine Learning, el SDK de Azure Machine Learning para Python o Machine Learning Studio para crear una conexión de datos de Amazon S3.

Para crear una conexión de datos de Amazon S3, primero ensamblar un archivo YAML que defina la conexión y, a continuación, ejecute un comando o script del SDK de Python o la CLI de Azure que llame al archivo YAML. Para el SDK de Python, también puede especificar la información de conexión directamente sin usar un archivo YAML.

Para usar la CLI de Azure Machine Learning para crear una conexión de datos de Amazon S3, primero ensamblar un archivo YAML que defina la conexión y, a continuación, ejecute un comando de la CLI de Azure que llame al archivo YAML.

Cree el siguiente archivo YAML que define la conexión de Amazon S3. Proporcione un <connection-name> y reemplace los marcadores de posición <s3-bucket-name>, <access-key-id> y <secret-access-key> por los valores de su cuenta de Amazon S3. Guarde el archivo con un nombre como my_amazons3_connection.yaml.

$schema: http://azureml/sdk-2-0/Connection.json

type: s3
name: <connection-name>

target: <s3-bucket-name>
credentials:
    type: access_key
    access_key_id: <access-key-id>
    secret_access_key: <secret-access-key>

Para crear la conexión, ejecute el siguiente comando de la CLI, proporcionando el nombre de archivo YAML para el marcador de posición <yaml-filename>.

az ml connection create --file <yaml-filename>.yaml

Creación de conexiones externas que no son de datos

También puede crear conexiones de Azure Machine Learning que no son de datos a servicios externos que use en el código. En esta sección se muestra cómo crear las siguientes conexiones que no son de datos:

  • Git
  • Fuente de Python
  • Azure Container Registry (Registro de Contenedores de Azure)
  • Registro de contenedor genérico
  • Clave de API

Creación de una conexión de Git

Puede crear una conexión de Git mediante la CLI de Azure, el SDK de Python o Machine Learning Studio.

Para crear una conexión de Git mediante la CLI de Azure, defina la conexión mediante uno de los siguientes archivos YAML. Asigne un nombre al archivo como git-connection.yml.

  • Para conectarse mediante un token de acceso personal (PAT), proporcione un <connection-name> y reemplace los marcadores de posición <account>, <repo> y <PAT> por los valores de su cuenta de Git, repositorio y PAT.

    name: <connection-name>
    type: git
    target: https://github.com/<account>/<repo>
    credentials:
       type: pat
       pat: <PAT>
    
  • Para conectarse a un repositorio público sin usar credenciales, proporcione un <connection-name> y reemplace los marcadores de posición <account> y <repo> por sus valores.

    name: <connection-name>
    type: git
    target: https://github.com/<account>/<repo>
    

Cree la conexión de Azure Machine Learning ejecutando el siguiente comando, proporcionando el nombre de archivo YAML para el marcador de posición <yaml-filename>.

az ml connection create --file <yaml-filename>.yaml

Fuente de Python

Puede crear una conexión a una fuente de Python mediante la CLI de Azure, el SDK de Python o Machine Learning Studio.

Defina una conexión de fuente de Python mediante alguno de los archivos YAML siguientes. Asigne un nombre al archivo como python-feed-connection.yml.

  • Para conectarse mediante un PAT, proporcione un <connection-name> y reemplace los marcadores de posición <feed-url> y <PAT> por los valores de su fuente.

    name: <connection-name>
    type: python_feed
    target: https://<feed-url>
    credentials:
       type: pat
       pat: <PAT>
    
  • Para conectarse mediante un nombre de usuario y una contraseña, proporcione un <connection-name> y reemplace los marcadores de posición <feed-url>, <username> y <password> por los valores de la fuente.

    name: <connection-name>
    type: python_feed
    target: https://<feed-url>
    credentials:
       type: username_password
       username: <username>
       password: <password>
    
  • Para conectarse a una fuente pública sin usar credenciales, proporcione un <connection-name> y reemplace el marcador de posición <feed-url> por la dirección URL de la fuente de Python.

    name: <connection-name>
    type: python_feed
    target: https://<feed-url>
    

Cree la conexión de Azure Machine Learning ejecutando el siguiente comando, proporcionando el nombre de archivo YAML para el marcador de posición <yaml-filename>.

az ml connection create --file <yaml-filename>.yaml

Azure Container Registry (Registro de Contenedores de Azure)

Puede crear una conexión a Azure Container Registry mediante la CLI de Azure, el SDK de Python o Machine Learning Studio.

Use el siguiente archivo YAML para definir una conexión a Azure Container Registry con autenticación de nombre de usuario y contraseña.

name: <connection-name>
type: container_registry
target: https://<container-registry-url>
credentials:
   type: username_password
   username: <username>
   password: <password>

Para crear la conexión, ejecute el siguiente comando:

az ml connection create --file connection.yaml

Registro de contenedor genérico

La conexión al área de trabajo de GenericContainerRegistry especifica un registro externo, como Nexus o Artifactory, para las construcciones de imágenes. Las imágenes del entorno se insertan desde el registro especificado y se omite la memoria caché anterior. Puede crear una conexión a un registro de contenedor genérico mediante la CLI de Azure, el SDK de Python o Machine Learning Studio.

En el caso de la CLI de Azure y el SDK de Python, los archivos YAML de ejemplo siguientes definen una conexión genérica del registro de contenedor. Actualice los valores de ejemplo con sus propios valores.

#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: myusername
  password: <password>
#hello_world_job.yml
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world"
environment: azureml:myenv@latest

Ejecute el siguiente comando para crear la conexión mediante los archivos YAML anteriores y sus credenciales. Actualice los valores de ejemplo con sus propios valores.

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

Para crear el entorno, ejecute el comando siguiente:

az ml environment create --name docker-image-plus-conda-example --version 1 --file myenv.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

Ejecute el siguiente comando para comprobar que el entorno se creó correctamente.

az ml environment show --name docker-image-plus-conda-example --version 1 --resource-group my-resource-group --workspace-name my-workspace

Clave de API

Cree el siguiente archivo YAML para definir una conexión a una clave de API. Actualice los valores de ejemplo con sus propios valores.

name: my_api_key
type: api_key
api_base: "https://myapi.core.windows.net/mycontainer"
api_key: "aAbBcCdD"

Para crear la conexión, ejecute el siguiente comando:

az ml connection create --file connection.yaml

Para mejorar la seguridad, deje el api_key valor fuera del archivo YAML y proporciónelo en la línea de comandos:

az ml connection create --file connection.yml --set api_key="aAbBcCdD"