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
Een Azure-abonnement. Als u nog geen abonnement op Azure hebt, maak dan een gratis account aan voordat u begint. Probeer de gratis of betaalde versie van Azure Machine Learning.
Een Azure Machine Learning-werkruimte.
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
Gerelateerde inhoud
Als u een gegevensverbinding gebruikt (Snowflake DB, Amazon S3 of Azure SQL DB), bieden deze artikelen meer informatie: