Delen via


Externe 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 externe gegevensbronnen om hun gegevens beschikbaar te maken voor Azure Machine Learning. U leert ook hoe u verbinding maakt met verschillende externe niet-gegevensservices. U kunt de Azure Machine Learning CLI, de Azure Machine Learning SDK voor Python of Machine Learning Studio gebruiken om deze verbindingen te maken.

Met een Azure Machine Learning-verbinding worden gebruikersnamen en wachtwoorden veilig opgeslagen als geheimen in een sleutelkluis. Azure-verbindingen functioneren als proxy's voor de sleutelkluis, en interacties met de verbindingen zijn directe interacties met Azure Key Vault. Op rollen gebaseerd toegangsbeheer van Key Vault (RBAC) beheert de toegang tot de gegevensbronnen. U hoeft niet rechtstreeks met de referenties om te gaan nadat ze zijn opgeslagen in de Key Vault.

Azure ondersteunt verbindingen met de volgende externe bronnen voor beschikbaarheid van gegevens:

  • Snowflake
  • Azure SQL Database
  • Amazon S3

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 met de gratis of betaalde versie van Azure Machine Learning.

  • Een Azure Machine Learning-werkruimte.

  • De Azure CLI waarop de ml extensieversie 2.15.1 of hoger is geïnstalleerd.

    Als u een oudere Versie of extensie van Azure CLI hebt, gebruikt u de volgende code om deze te verwijderen en de nieuwe te installeren.

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

Een Snowflake-gegevensverbinding maken

U kunt de Azure Machine Learning CLI, Azure Machine Learning SDK voor Python of Machine Learning Studio gebruiken om een Snowflake-gegevensverbinding te maken die gebruikmaakt van verificatie met gebruikersnaam en wachtwoord.

U kunt ook de Azure CLI of Python SDK gebruiken om een Snowflake-verbinding te maken die gebruikmaakt van OAuth met een service-principal. Machine Learning Studio biedt geen ondersteuning voor het maken van OAuth-verbindingen.

Een verbinding maken die gebruikmaakt van verificatie via gebruikersnaam en wachtwoord

Als u de Snowflake-verbinding wilt maken, maakt u eerst een YAML-bestand dat de verbinding definieert en voert u vervolgens een opdracht of script uit waarmee het YAML-bestand wordt aanroepen. Voor Python SDK kunt u ook de verbindingsgegevens rechtstreeks opgeven zonder een YAML-bestand te gebruiken.

U kunt referenties opslaan in het YAML-bestand en de opgeslagen referenties overschrijven in de Azure CLI-opdrachtregel wanneer u de verbinding maakt. Het is echter het beste om te voorkomen dat referenties in een bestand worden opgeslagen, omdat een beveiligingslek kan leiden tot een referentielek. In plaats daarvan kunt u de credentials waarden leeg laten en deze opgeven in de opdrachtregel.

Het volgende YAML-bestand definieert een Snowflake-verbinding die gebruikmaakt van verificatie via gebruikersnaam en wachtwoord. Als u het bestand wilt maken, geeft u een <connection-name> op en vervangt u de tijdelijke aanduidingen <account>, <database>, <warehouse>, en <role> door de waarden van uw Snowflake-account. Als u geen waarde opgeeft <role>, wordt de standaardwaarde ingesteld op PUBLIC. Sla het bestand op met een naam zoals 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>

Als u de verbinding wilt maken, voert u een van de volgende opdrachtregels uit en geeft u de YAML-bestandsnaam op voor de <yaml-filename> tijdelijke aanduiding.

  • Voer de volgende opdracht uit om de gebruikersnaam en het wachtwoord te gebruiken die u hebt opgeslagen in het YAML-bestand:

    az ml connection create --file <yaml-filename>.yaml
    
  • Als u de gebruikersnaam en het wachtwoord wilt opgeven als onderdeel van de opdrachtregel, voert u de volgende opdracht uit en voert u de <username><password> tijdelijke aanduidingen in:

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

De Azure CLI of Python SDK gebruiken om een verbinding te maken met OAuth-verificatie

U kunt de Azure CLI of Python SDK gebruiken om een Snowflake-verbinding te maken die gebruikmaakt van een service-principal voor OAuth om te verifiëren.

Belangrijk

Voordat u de verbinding kunt maken met behulp van OAuth, moet u Eerst Azure configureren om namens de client OAuth-tokens uit te geven. Met dit configuratieproces maakt u de vereiste service-principal voor de OAuth-verbinding.

Als u een OAuth-verbinding voor Azure Machine Learning wilt maken, hebt u de volgende informatie nodig:

  • 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

Als u de verbinding wilt maken, maakt u eerst een YAML-bestand dat de verbinding definieert en voert u vervolgens een opdracht of script uit dat het YAML-bestand aanroept. Voor Python SDK kunt u ook de verbindingsgegevens rechtstreeks opgeven zonder een YAML-bestand te gebruiken.

Maak het volgende YAML-bestand om een Snowflake-verbinding te definiëren die gebruikmaakt van OAuth. Geef een <connection-name> op, en vervang de <account>, <database>, <warehouse>, en <service-principal-scope> plaatsaanduidingen met de waarden uit uw Snowflake-account. Geef voor uw inloggegevens uw <client-id>, <client-secret>, en <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>
  • Als u de verbinding wilt maken met behulp van de referentiegegevens die zijn opgeslagen in het YAML-bestand, voert u de volgende opdracht uit en vervangt u de tijdelijke aanduiding door de <yaml-filename> YAML-bestandsnaam.

    az ml connection create --file <yaml-filename>.yaml
    
  • Als u de referentiegegevens in het YAML-bestand wilt overschrijven of referenties wilt opgeven in de opdrachtregel, voert u de volgende opdracht uit, voert u uw <client-id>, <client-secret>en <tenant-id> waarden voor de tijdelijke aanduidingen in:

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

Een Azure SQL Database-gegevensverbinding maken

U kunt de Azure Machine Learning CLI, de Azure Machine Learning SDK voor Python of Machine Learning Studio gebruiken om een Azure SQL Database-gegevensverbinding te maken.

Als u een Azure SQL-databaseverbinding wilt maken, maakt u eerst een YAML-bestand dat de verbinding definieert en voert u vervolgens een Azure CLI- of Python SDK-opdracht of script uit waarmee het YAML-bestand wordt aanroepen. Voor Python SDK kunt u ook de verbindingsgegevens rechtstreeks opgeven zonder een YAML-bestand te gebruiken.

Maak het volgende YAML-bestand om de Azure SQL Database-verbinding te definiëren en sla het bestand op met een naam zoals my_azuresqldb_connection.yaml. Geef een <connection-name>, en vervang de <server>, <port>, en <database> plaatsaanduidingen door de juiste waarden uit uw Azure SQL-database.

Je kunt de gebruikersnaam en het wachtwoord van de Azure SQL-database in dit bestand opslaan, maar het is veiliger om de waarden leeg te laten en deze op te geven in de opdrachtregel bij het maken van de verbinding.

$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>

Als u de verbinding wilt maken, voert u een van de volgende CLI-opdrachtregels uit met de YAML-bestandsnaam voor de <yaml-filename> tijdelijke aanduiding.

  • Voer de volgende opdracht uit om de gebruikersnaam en het wachtwoord te gebruiken die zijn opgeslagen in het YAML-bestand:

    az ml connection create --file <yaml-filename>.yaml
    
  • Als u de gebruikersnaam en het wachtwoord wilt opgeven als onderdeel van de opdrachtregel, voert u de volgende opdracht uit en vult u uw invoer in voor de <username> en <password> tijdelijke aanduidingen:

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

Een Amazon S3-gegevensverbinding maken

U kunt de Azure Machine Learning CLI, de Azure Machine Learning SDK voor Python of Machine Learning Studio gebruiken om een Amazon S3-gegevensverbinding te maken.

Als u een Amazon S3-gegevensverbinding wilt maken, maakt u eerst een YAML-bestand dat de verbinding definieert en voert u vervolgens een Azure CLI- of Python SDK-opdracht of script uit dat het YAML-bestand aanroept. Voor Python SDK kunt u ook de verbindingsgegevens rechtstreeks opgeven zonder een YAML-bestand te gebruiken.

Als u de Azure Machine Learning CLI wilt gebruiken om een Amazon S3-gegevensverbinding te maken, maakt u eerst een YAML-bestand dat de verbinding definieert en voert u vervolgens een Azure CLI-opdracht uit die het YAML-bestand aanroept.

Maak het volgende YAML-bestand dat de Amazon S3-verbinding definieert. Geef een <connection-name> en vervang de aanduidingen <s3-bucket-name>, <access-key-id> en <secret-access-key> door de waarden van uw Amazon S3-account. Sla het bestand op met een naam zoals 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>

Als u de verbinding wilt maken, voert u de volgende CLI-opdracht uit en geeft u de YAML-bestandsnaam op voor de <yaml-filename> tijdelijke aanduiding.

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

Externe niet-gegevensverbindingen maken

U kunt ook verbindingen maken met externe services die u in uw code gebruikt, waarvoor geen gegevens met Azure Machine Learning nodig zijn. In deze sectie ziet u hoe u de volgende niet-gegevensverbindingen maakt:

  • Git
  • Python-feed
  • Azure Container Registratiedienst
  • Algemeen containerregister
  • API-sleutel

Een Git-verbinding maken

U kunt een Git-verbinding maken met behulp van Azure CLI, Python SDK of Machine Learning Studio.

Als u een Git-verbinding wilt maken met behulp van Azure CLI, definieert u de verbinding met behulp van een van de volgende YAML-bestanden. Geef het bestand een naam zoals git-connection.yml.

  • Als u verbinding wilt maken met behulp van een persoonlijk toegangstoken (PAT), geeft u een <connection-name>, en vervangt u de <account>, <repo>en <PAT> tijdelijke aanduidingen door de waarden voor uw Git-account, opslagplaats en PAT.

    name: <connection-name>
    type: git
    target: https://github.com/<account>/<repo>
    credentials:
       type: pat
       pat: <PAT>
    
  • Als u verbinding wilt maken met een openbare opslagplaats zonder dat u referenties hoeft te gebruiken, geef een <connection-name> op en vervang de plaatsaanduidingen <account> en <repo> door uw waarden.

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

Maak de Azure Machine Learning-verbinding door de volgende opdracht uit te voeren en de YAML-bestandsnaam voor de <yaml-filename> tijdelijke aanduiding op te geven.

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

Python-feed

U kunt een verbinding maken met een Python-feed met behulp van Azure CLI, Python SDK of Machine Learning Studio.

Definieer een Python-feedverbinding met behulp van een van de volgende YAML-bestanden. Geef het bestand een naam zoals python-feed-connection.yml.

  • Als u verbinding wilt maken met een PAT, geeft u een <connection-name> en vervangt u de <feed-url> en <PAT> tijdelijke aanduidingen door de waarden voor uw feed.

    name: <connection-name>
    type: python_feed
    target: https://<feed-url>
    credentials:
       type: pat
       pat: <PAT>
    
  • Als u verbinding wilt maken met behulp van een gebruikersnaam en wachtwoord, geeft u een <connection-name>, en vervangt u de <feed-url><username><password> tijdelijke aanduidingen door de waarden voor uw feed.

    name: <connection-name>
    type: python_feed
    target: https://<feed-url>
    credentials:
       type: username_password
       username: <username>
       password: <password>
    
  • Als u verbinding wilt maken met een openbare feed zonder referenties te gebruiken, geeft u een <connection-name>en vervangt u de tijdelijke aanduiding door de <feed-url> URL van uw Python-feed.

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

Maak de Azure Machine Learning-verbinding door de volgende opdracht uit te voeren en de YAML-bestandsnaam voor de <yaml-filename> tijdelijke aanduiding op te geven.

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

Azure Container Registratiedienst

U kunt een verbinding maken met Azure Container Registry met behulp van Azure CLI, Python SDK of Machine Learning Studio.

Gebruik het volgende YAML-bestand om een verbinding met Azure Container Registry te definiëren met verificatie met gebruikersnaam/wachtwoord.

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

Voer de volgende opdracht uit om de verbinding te maken:

az ml connection create --file connection.yaml

Algemeen containerregister

De GenericContainerRegistry-werkruimteverbinding geeft een extern register op, zoals Nexus of Artifactory, voor image-builds. Omgevingsinstallatiekopieën worden gepusht vanuit het opgegeven register en de vorige cache wordt genegeerd. U kunt een verbinding maken met een algemeen containerregister met behulp van Azure CLI, Python SDK of Machine Learning Studio.

Voor Azure CLI en Python SDK definiëren de volgende YAML-bestanden een algemene containerregisterverbinding. Werk de voorbeeldwaarden bij met uw eigen waarden.

#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

Voer de volgende opdracht uit om de verbinding te maken met behulp van de voorgaande YAML-bestanden en uw referenties. Werk de voorbeeldwaarden bij met uw eigen waarden.

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

Voer de volgende opdracht uit om de omgeving te maken:

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

Voer het volgende commando uit om te verifiëren dat de omgeving succesvol is gecreëerd.

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

API-sleutel

Maak het volgende YAML-bestand om een verbinding met een API-sleutel te definiëren. Werk de voorbeeldwaarden bij met uw eigen waarden.

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

Voer de volgende opdracht uit om de verbinding te maken:

az ml connection create --file connection.yaml

Voor een betere beveiliging laat u de api_key waarde weg uit het YAML-bestand en geeft u deze via de opdrachtregel op.

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