Delen via


Verbindingen maken (preview)

VAN TOEPASSING OP:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (current)

In dit artikel leert u hoe u verbinding maakt met gegevensbronnen buiten Azure om die gegevens beschikbaar te maken voor Azure Machine Learning-services. Azure-verbindingen fungeren als sleutelkluisproxy's en interacties met verbindingen zijn directe interacties met een Azure-sleutelkluis. Met een Azure Machine Learning-verbinding worden gegevensbronnen voor gebruikersnaam en wachtwoord veilig opgeslagen als geheimen in een sleutelkluis. De key vault RBAC beheert de toegang tot deze gegevensbronnen. Voor deze beschikbaarheid van gegevens ondersteuning voor Azure verbindingen met deze externe bronnen:

  • Snowflake DB
  • Amazon S3
  • Azure SQL Database

Belangrijk

Deze functie is momenteel beschikbaar als openbare preview-versie. Deze preview-versie wordt geleverd zonder een service level agreement en we raden deze niet aan voor productieworkloads. Misschien worden bepaalde functies niet ondersteund of zijn de mogelijkheden ervan beperkt.

Zie Aanvullende gebruiksvoorwaarden voor Microsoft Azure-previews voor meer informatie.

Vereisten

Belangrijk

Met een Azure Machine Learning-verbinding worden de referenties die zijn doorgegeven tijdens het maken van de verbinding veilig opgeslagen in de Azure Key Vault-werkruimte. Een verbinding verwijst naar de referenties van de opslaglocatie van de sleutelkluis voor verder gebruik. U hoeft de referenties niet rechtstreeks af te handelen nadat ze zijn opgeslagen in de sleutelkluis. U hebt de mogelijkheid om de referenties op te slaan in het YAML-bestand. Een CLI-opdracht of SDK kan deze overschrijven. We raden u aan om referentieopslag in een YAML-bestand te voorkomen , omdat een beveiligingslek kan leiden tot een referentielek.

Notitie

Controleer voor een geslaagde gegevensimport of u het nieuwste azure-ai-ml-pakket (versie 1.5.0 of hoger) voor SDK hebt geïnstalleerd en of u de ml-extensie (versie 2.15.1 of hoger) hebt geïnstalleerd.

Als u een ouder SDK-pakket of CLI-extensie hebt, verwijdert u het oude pakket en installeert u de nieuwe met de code die wordt weergegeven in de sectie tabblad. Volg de instructies voor SDK en CLI, zoals hier wordt weergegeven:

Codeversies

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)

Een Snowflake DB-verbinding maken

Met dit YAML-bestand maakt u een Snowflake DB-verbinding. Zorg ervoor dat u de juiste waarden bijwerkt:

# 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

Maak de Azure Machine Learning-verbinding in de CLI:

Optie 1: Gebruik de gebruikersnaam en het wachtwoord in het YAML-bestand

az ml connection create --file my_snowflakedb_connection.yaml

Optie 2: de gebruikersnaam en het wachtwoord op de opdrachtregel overschrijven

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

Een Snowflake DB-verbinding maken die gebruikmaakt van OAuth

In de informatie in deze sectie wordt beschreven hoe u een Snowflake DB-verbinding maakt die gebruikmaakt van OAuth voor verificatie.

Belangrijk

Voordat u de stappen in deze sectie volgt, moet u Eerst Azure configureren voor het uitgeven van OAuth-tokens namens de client. Met deze configuratie maakt u een service-principal die vereist is voor de OAuth-verbinding. U hebt de volgende informatie nodig om de verbinding te maken:

  • Client-id: de id van de service-principal
  • Clientgeheim: het geheim van de service-principal
  • Tenant-id: de id van de Microsoft Entra ID-tenant

Met dit YAML-bestand maakt u een Snowflake DB-verbinding die gebruikmaakt van OAuth. Zorg ervoor dat u de juiste waarden bijwerkt:

# 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

Maak de Azure Machine Learning-verbinding in de CLI:

az ml connection create --file my_snowflakedb_connection.yaml

U kunt de informatie ook overschrijven in het YAML-bestand op de opdrachtregel:

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"

Een Azure SQL DB-verbinding maken

Met dit YAML-script maakt u een Azure SQL DB-verbinding. Zorg ervoor dat u de juiste waarden bijwerkt:

# 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

Maak de Azure Machine Learning-verbinding in de CLI:

Optie 1: Gebruik de gebruikersnaam/het wachtwoord uit het YAML-bestand

az ml connection create --file my_sqldb_connection.yaml

Optie 2: de gebruikersnaam en het wachtwoord in het YAML-bestand overschrijven

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

Amazon S3-verbinding maken

Maak een Amazon S3-verbinding met het volgende YAML-bestand. Zorg ervoor dat u de juiste waarden bijwerkt:

# 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

Maak de Azure Machine Learning-verbinding in de CLI:

az ml connection create --file my_s3_connection.yaml

Niet-gegevensverbindingen

U kunt deze verbindingstypen gebruiken om verbinding te maken met Git:

  • Python-feed
  • Azure Container Registry
  • een verbinding die gebruikmaakt van een API-sleutel

Deze verbindingen zijn geen gegevensverbindingen, maar worden gebruikt om verbinding te maken met externe services voor gebruik in uw code.

Git

Maak een Git-verbinding met een van de volgende YAML-bestanden. Zorg ervoor dat u de juiste waarden bijwerkt:

  • Verbinding maken met een persoonlijk toegangstoken (PAT):

    #Connection.yml
    name: test_ws_conn_git_pat
    type: git
    target: https://github.com/contoso/contosorepo
    credentials:
        type: pat
        pat: dummy_pat
    
  • Verbinding maken met een openbare opslagplaats (geen referenties):

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

Maak de Azure Machine Learning-verbinding in de CLI:

az ml connection create --file connection.yaml

Python-feed

Maak een verbinding met een Python-feed met een van de volgende YAML-bestanden. Zorg ervoor dat u de juiste waarden bijwerkt:

  • Verbinding maken met een persoonlijk toegangstoken (PAT):

    #Connection.yml
    name: test_ws_conn_python_pat
    type: python_feed
    target: https://test-feed.com
    credentials:
        type: pat
        pat: dummy_pat
    
  • Verbinding maken met behulp van een gebruikersnaam en wachtwoord:

    name: test_ws_conn_python_user_pass
    type: python_feed
    target: https://test-feed.com
    credentials:
        type: username_password
        username: <username>
        password: <password>
    
    
  • Verbinding maken met een openbare feed (geen referenties):

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

Maak de Azure Machine Learning-verbinding in de CLI:

az ml connection create --file connection.yaml

Container Registry

Maak een verbinding met een Azure Container Registry met een van de volgende YAML-bestanden. Zorg ervoor dat u de juiste waarden bijwerkt:

  • Verbinding maken met behulp van een gebruikersnaam en wachtwoord:

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

Maak de Azure Machine Learning-verbinding in de CLI:

az ml connection create --file connection.yaml

API key

In het volgende voorbeeld wordt een API-sleutelverbinding gemaakt:

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)

Algemeen containerregister

Met behulp van de verbinding met de GenericContainerRegistry-werkruimte kunt u een extern register opgeven, zoals Nexus of Artifactory, voor builds van installatiekopieën. Omgevingsinstallatiekopieën worden gepusht vanuit het opgegeven register en de vorige cache wordt genegeerd.

Maak een verbinding met behulp van de volgende YAML-bestanden. Zorg ervoor dat u de juiste waarden bijwerkt:

#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

Maak verbinding vanuit het YAML-bestand met uw referenties:

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

Omgeving maken

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

U kunt controleren of de omgeving is gemaakt

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

Als u een gegevensverbinding gebruikt (Snowflake DB, Amazon S3 of Azure SQL DB), bieden deze artikelen meer informatie: