Dela via


Skapa anslutningar (förhandsversion)

GÄLLER FÖR:Azure CLI ml extension v2 (current)Python SDK azure-ai-ml v2 (aktuell)

I den här artikeln får du lära dig hur du ansluter till datakällor utanför Azure för att göra dessa data tillgängliga för Azure Machine Learning-tjänster. Azure-anslutningar fungerar som proxyservrar för nyckelvalv, och interaktioner med anslutningar är direkta interaktioner med ett Azure-nyckelvalv. En Azure Machine Learning-anslutning lagrar resurser för användarnamn och lösenord som hemligheter i ett nyckelvalv på ett säkert sätt. Nyckelvalvets RBAC styr åtkomsten till dessa dataresurser. För den här datatillgängligheten Azure Support anslutningar till dessa externa källor:

  • Snowflake DB
  • Amazon S3
  • Azure SQL-databas

Viktigt!

Den här funktionen är för närvarande i allmänt tillgänglig förhandsversion. Den här förhandsversionen tillhandahålls utan ett serviceavtal och vi rekommenderar det inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade.

Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.

Förutsättningar

Viktigt!

En Azure Machine Learning-anslutning lagrar säkert de autentiseringsuppgifter som skickades när anslutningen skapades i Arbetsytans Azure Key Vault. En anslutning refererar till autentiseringsuppgifterna från lagringsplatsen för nyckelvalvet för vidare användning. Du behöver inte hantera autentiseringsuppgifterna direkt när de har lagrats i nyckelvalvet. Du har möjlighet att lagra autentiseringsuppgifterna i YAML-filen. Ett CLI-kommando eller SDK kan åsidosätta dem. Vi rekommenderar att du undviker lagring av autentiseringsuppgifter i en YAML-fil eftersom en säkerhetsöverträdelse kan leda till en läcka av autentiseringsuppgifter.

Kommentar

För en lyckad dataimport kontrollerar du att du har installerat det senaste azure-ai-ml-paketet (version 1.5.0 eller senare) för SDK och ML-tillägget (version 2.15.1 eller senare).

Om du har ett äldre SDK-paket eller CLI-tillägg tar du bort det gamla och installerar det nya med koden som visas i flikavsnittet. Följ anvisningarna för SDK och CLI enligt följande:

Kodversioner

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)

Skapa en Snowflake DB-anslutning

Den här YAML-filen skapar en Snowflake DB-anslutning. Se till att uppdatera lämpliga värden:

# 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

Skapa Azure Machine Learning-anslutningen i CLI:

Alternativ 1: Använd användarnamnet och lösenordet i YAML-filen

az ml connection create --file my_snowflakedb_connection.yaml

Alternativ 2: Åsidosätt användarnamnet och lösenordet på kommandoraden

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

Skapa en Snowflake DB-anslutning som använder OAuth

Informationen i det här avsnittet beskriver hur du skapar en Snowflake DB-anslutning som använder OAuth för att autentisera.

Viktigt!

Innan du följer stegen i det här avsnittet måste du först konfigurera Azure för att utfärda OAuth-token för klientens räkning. Den här konfigurationen skapar ett huvudnamn för tjänsten som krävs för OAuth-anslutningen. Du behöver följande information för att skapa anslutningen:

  • Klient-ID: ID för tjänstens huvudnamn
  • Klienthemlighet: Hemligheten för tjänstens huvudnamn
  • Klientorganisations-ID: ID för Microsoft Entra ID-klientorganisationen

Den här YAML-filen skapar en Snowflake DB-anslutning som använder OAuth. Se till att uppdatera lämpliga värden:

# 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

Skapa Azure Machine Learning-anslutningen i CLI:

az ml connection create --file my_snowflakedb_connection.yaml

Du kan också åsidosätta informationen i YAML-filen på kommandoraden:

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"

Skapa en Azure SQL DB-anslutning

Det här YAML-skriptet skapar en Azure SQL DB-anslutning. Se till att uppdatera lämpliga värden:

# 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

Skapa Azure Machine Learning-anslutningen i CLI:

Alternativ 1: Använd användarnamnet/lösenordet från YAML-filen

az ml connection create --file my_sqldb_connection.yaml

Alternativ 2: Åsidosätt användarnamnet och lösenordet i YAML-filen

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

Skapa Amazon S3-anslutning

Skapa en Amazon S3-anslutning med följande YAML-fil. Se till att uppdatera lämpliga värden:

# 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

Skapa Azure Machine Learning-anslutningen i CLI:

az ml connection create --file my_s3_connection.yaml

Icke-dataanslutningar

Du kan använda dessa anslutningstyper för att ansluta till Git:

  • Python-feed
  • Azure Container Registry
  • en anslutning som använder en API-nyckel

Dessa anslutningar är inte dataanslutningar, men används för att ansluta till externa tjänster för användning i koden.

Git

Skapa en Git-anslutning med en av följande YAML-filer. Se till att uppdatera lämpliga värden:

  • Anslut med en personlig åtkomsttoken (PAT):

    #Connection.yml
    name: test_ws_conn_git_pat
    type: git
    target: https://github.com/contoso/contosorepo
    credentials:
        type: pat
        pat: dummy_pat
    
  • Anslut till en offentlig lagringsplats (inga autentiseringsuppgifter):

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

Skapa Azure Machine Learning-anslutningen i CLI:

az ml connection create --file connection.yaml

Python-feed

Skapa en anslutning till en Python-feed med någon av följande YAML-filer. Se till att uppdatera lämpliga värden:

  • Anslut med en personlig åtkomsttoken (PAT):

    #Connection.yml
    name: test_ws_conn_python_pat
    type: python_feed
    target: https://test-feed.com
    credentials:
        type: pat
        pat: dummy_pat
    
  • Anslut med ett användarnamn och lösenord:

    name: test_ws_conn_python_user_pass
    type: python_feed
    target: https://test-feed.com
    credentials:
        type: username_password
        username: <username>
        password: <password>
    
    
  • Anslut till ett offentligt flöde (inga autentiseringsuppgifter):

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

Skapa Azure Machine Learning-anslutningen i CLI:

az ml connection create --file connection.yaml

Container Registry

Skapa en anslutning till ett Azure Container Registry med någon av följande YAML-filer. Se till att uppdatera lämpliga värden:

  • Anslut med ett användarnamn och lösenord:

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

Skapa Azure Machine Learning-anslutningen i CLI:

az ml connection create --file connection.yaml

API key

I följande exempel skapas en API-nyckelanslutning:

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)

Allmänt containerregister

Med hjälp av arbetsyteanslutningen GenericContainerRegistry kan du ange ett externt register, till exempel Nexus eller Artifactory, för avbildningsversioner. Miljöbilder skickas från det angivna registret och den tidigare cachen ignoreras.

Skapa en anslutning med hjälp av följande YAML-filer. Se till att uppdatera lämpliga värden:

#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

Skapa en anslutning från YAML-filen med dina autentiseringsuppgifter:

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

Skapa miljö

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

Du kan kontrollera att miljön har skapats

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

Om du använder en dataanslutning (Snowflake DB, Amazon S3 eller Azure SQL DB) innehåller dessa artiklar mer information: