Criar conexões (visualização)
APLICA-SE A:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (current)
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 servem como proxies de cofre de chave e as interações com conexões são interações diretas com um cofre de chaves do Azure. Uma conexão do Azure Machine Learning armazena com segurança 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 esta disponibilidade de dados, o Azure suporta ligações a estas fontes externas:
- Flocos de neve DB
- Amazon S3
- BD SQL do Azure
Importante
Esta funcionalidade está atualmente em pré-visualização pública. Esta versão de pré-visualização é fornecida sem um contrato de nível de serviço e não a recomendamos para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas.
Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.
Pré-requisitos
Uma subscrição do Azure. Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar. Experimente a versão gratuita ou paga do Azure Machine Learning.
Uma área de trabalho do Azure Machine Learning.
Importante
Uma conexão do Azure Machine Learning armazena com segurança as credenciais passadas durante a criação da conexão no Cofre da Chave do Azure do Espaço de Trabalho. Uma conexão faz referência às credenciais do local de armazenamento do cofre de chaves para uso posterior. Você não precisa lidar diretamente com as credenciais depois que elas são armazenadas no cofre de chaves. Você tem a opção de armazenar as credenciais no arquivo YAML. Um comando ou SDK da CLI pode substituí-los. Recomendamos que você evite o armazenamento de credenciais em um arquivo YAML, porque uma violação de segurança pode levar a um vazamento de credenciais.
Nota
Para uma importação de dados bem-sucedida, verifique se você instalou o pacote azure-ai-ml mais recente (versão 1.5.0 ou posterior) para 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 CLI, remova o antigo e instale o novo com o código mostrado na seção da guia. Siga as instruções para SDK e CLI como mostrado aqui:
Versões 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)
Criar uma conexão de banco de dados Snowflake
Este arquivo YAML cria uma conexão Snowflake DB. Certifique-se de atualizar 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: Use o nome de usuário e 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>"
Criar uma conexão de banco de dados Snowflake que usa OAuth
As informações nesta seção descrevem como criar uma conexão de banco de dados Snowflake que usa OAuth para autenticar.
Importante
Antes de seguir as etapas nesta 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: a ID da entidade de serviço
- Segredo do cliente: O segredo da entidade de serviço
- ID do locatário: a ID do locatário do Microsoft Entra ID
Este arquivo YAML cria uma conexão Snowflake DB que usa OAuth. Certifique-se de atualizar 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 do Banco de Dados SQL do Azure
Este script YAML cria uma conexão do Banco de Dados SQL do Azure. Certifique-se de atualizar 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: Use 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 senha no arquivo YAML
az ml connection create --file my_sqldb_connection.yaml --set credentials.
username="<username>" credentials.
password="<password>"
Criar conexão com o Amazon S3
Crie uma conexão do Amazon S3 com o seguinte arquivo YAML. Certifique-se de atualizar 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 sem dados
Você pode usar estes tipos de conexão para se conectar ao Git:
- Feed Python
- Registo de Contentores do Azure
- uma conexão que usa uma chave de API
Essas conexões não são conexões de dados, mas são usadas para se conectar a serviços externos para uso em seu código.
Git
Crie uma conexão Git com um dos seguintes arquivos YAML. Certifique-se de atualizar os valores apropriados:
Conecte-se usando um token de acesso pessoal (PAT):
#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 Python
Crie uma conexão com um feed Python com um dos seguintes arquivos YAML. Certifique-se de atualizar os valores apropriados:
Conecte-se usando um token de acesso pessoal (PAT):
#Connection.yml name: test_ws_conn_python_pat type: python_feed target: https://test-feed.com credentials: type: pat pat: dummy_pat
Conecte-se usando um 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
Container Registry
Crie uma conexão com um Registro de Contêiner do Azure com um dos seguintes arquivos YAML. Certifique-se de atualizar os valores apropriados:
Conecte-se usando um 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 exemplo a seguir 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 do espaço de trabalho GenericContainerRegistry, você pode especificar um registro externo, como Nexus ou Artifactory, para compilações de imagem. As imagens de ambiente são enviadas por push do registro especificado e o cache anterior é ignorado.
Crie uma conexão usando os seguintes arquivos YAML. Certifique-se de atualizar 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 conexão a partir do 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
Conteúdos relacionados
Se você usar uma conexão de dados (Snowflake DB, Amazon S3 ou Azure SQL DB), estes artigos oferecem mais informações: