Criar conexões (versão prévia)

APLICA-SE A:Extensão de ML da CLI do Azure v2 (atual)SDK do Python azure-ai-ml v2 (atual)

Neste artigo, saiba como se conectar a fontes de dados localizadas fora do Azure para disponibilizar esses dados para os serviços do Azure Machine Learning. As conexões do Azure funcionam como proxies de cofre de chaves, e as interações com as conexões são, na verdade, interações diretas com um cofre de chaves do Azure. Uma conexão do Azure Machine Learning armazena com segurança os recursos de dados de nome de usuário e senha, como segredos, em um cofre de chaves. O RBAC do cofre de chaves controla o acesso a esses recursos de dados. Para essa disponibilidade de dados, o Azure dá suporte a conexões com essas fontes externas:

  • Banco de Dados do Snowflake
  • Amazon S3
  • BD SQL do Azure

Importante

Esse recurso está atualmente em visualização pública. Essa versão prévia é fornecida sem um contrato de nível de serviço e não é recomendada para cargas de trabalho de produção. Alguns recursos podem não ter suporte ou podem ter restrição de recursos.

Para obter mais informações, consulte Termos de Uso Complementares de Versões Prévias do Microsoft Azure.

Pré-requisitos

Importante

Uma conexão do Azure Machine Learning armazena com segurança as credenciais passadas durante a criação da conexão no Espaço de trabalho do Azure Key Vault. Uma conexão faz referência às credenciais do local de armazenamento do cofre de chaves para uso adicional. Você não precisa lidar diretamente com as credenciais depois que elas forem armazenadas no cofre de chaves. Você tem a opção de armazenar as credenciais no arquivo YAML. Um comando da CLI ou SDK pode substituí-las. Recomendamos que você evite o armazenamento de credenciais em um arquivo YAML, pois uma violação de segurança pode levar a um vazamento de credencial.

Observação

Para que a importação de dados seja bem-sucedida, verifique se você instalou o pacote azure-ai-ml mais recente (versão 1.5.0 ou posterior) para o SDK e a extensão ml (versão 2.15.1 ou posterior).

Se você tiver um pacote SDK mais antigo ou uma extensão da CLI, remova a antiga e instale a nova com o código mostrado na seção da guia. Siga as instruções para o SDK e a CLI, como mostrado aqui:

Versões do 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)

Criar uma conexão do Banco de Dados do Snowflake

Esse arquivo YAML cria uma conexão de banco de dados do Snowflake. Atualize os valores apropriados:

# 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

Crie a conexão do Azure Machine Learning na CLI:

Opção 1: usar o nome de usuário e a senha no arquivo YAML

az ml connection create --file my_snowflakedb_connection.yaml

Opção 2: substituir o nome de usuário e a senha na linha de comando

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

Crie uma conexão Snowflake DB que use OAuth

As informações nessa seção descrevem como criar uma conexão Snowflake DB que usa OAuth para autenticação.

Importante

Antes de seguir as etapas dessa seção, você deve primeiro Configurar o Azure para emitir tokens OAuth em nome do cliente. Essa configuração cria uma entidade de serviço, que é necessária para a conexão OAuth. Você precisa das seguintes informações para criar a conexão:

  • ID do cliente: O ID do principal do serviço
  • Segredo do cliente: O segredo do principal do serviço
  • ID do locatário: a ID do locatário do Microsoft Entra ID

Esse arquivo YAML cria uma conexão Snowflake DB que usa OAuth. Atualize os valores apropriados:

# 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

Crie a conexão do Azure Machine Learning na CLI:

az ml connection create --file my_snowflakedb_connection.yaml

Você também pode substituir as informações no arquivo YAML na linha de 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"

Criar uma conexão de Banco de Dados SQL do Azure

Esse script YAML cria uma conexão de Banco de Dados SQL do Azure. Atualize os valores apropriados:

# 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

Crie a conexão do Azure Machine Learning na CLI:

Opção 1: usar o nome de usuário / senha do arquivo YAML

az ml connection create --file my_sqldb_connection.yaml

Opção 2: substituir o nome de usuário e a senha no arquivo YAML

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

Criar conexão do Amazon S3

Crie uma conexão do Amazon S3 com o seguinte arquivo YAML. Atualize os valores apropriados:

# 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

Crie a conexão do Azure Machine Learning na CLI:

az ml connection create --file my_s3_connection.yaml

Conexões que não são de dados

Você pode usar esses tipos de conexão para se conectar ao Git:

  • Feed do Python
  • Registro de Contêiner do Azure
  • uma conexão que usa uma chave de API

Essas conexões não são de dados, mas são usadas para se conectar a serviços externos para serem usados no seu código.

Git

Crie uma conexão Git com um dos seguintes arquivos YAML. Atualize os valores apropriados:

  • Conectar-se usando um PAT (token de acesso pessoal):

    #Connection.yml
    name: test_ws_conn_git_pat
    type: git
    target: https://github.com/contoso/contosorepo
    credentials:
        type: pat
        pat: dummy_pat
    
  • Conectar-se a um repositório público (sem credenciais):

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

Crie a conexão do Azure Machine Learning na CLI:

az ml connection create --file connection.yaml

Feed do Python

Crie uma conexão a um feed do Python com um dos seguintes arquivos YAML. Atualize os valores apropriados:

  • Conectar-se usando um PAT (token de acesso pessoal):

    #Connection.yml
    name: test_ws_conn_python_pat
    type: python_feed
    target: https://test-feed.com
    credentials:
        type: pat
        pat: dummy_pat
    
  • Conectar-se usando nome de usuário e senha:

    name: test_ws_conn_python_user_pass
    type: python_feed
    target: https://test-feed.com
    credentials:
        type: username_password
        username: <username>
        password: <password>
    
    
  • Conectar-se a um feed público (sem credenciais):

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

Crie a conexão do Azure Machine Learning na CLI:

az ml connection create --file connection.yaml

Registro de Contêiner

Crie uma conexão com um Registro de Contêiner do Azure com um dos seguintes arquivos YAML. Atualize os valores apropriados:

  • Conectar-se usando nome de usuário e senha:

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

Crie a conexão do Azure Machine Learning na CLI:

az ml connection create --file connection.yaml

Chave de API

O seguinte exemplo cria uma conexão de chave 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 Contêiner Genérico

Usando a conexão de workspace GenericContainerRegistry, você pode especificar um registro externo, como Nexus ou Artifactory, para builds de imagem. As imagens de ambiente são enviadas do registro especificado, e o cache anterior é ignorado.

Crie uma conexão usando os arquivos YAML a seguir. Atualize os valores apropriados:

#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

Crie uma conexão com base no arquivo YAML com suas credenciais:

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

Criar 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

Você pode verificar se o ambiente foi criado com êxito

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

Se você usar uma conexão de dados (BD Snowflake, Amazon S3 ou BD SQL do Azure), estes artigos oferecem mais informações: