Vytvoření připojení (Preview)

PLATÍ PRO:Rozšíření Azure CLI ml v2 (aktuální)Python SDK azure-ai-ml v2 (aktuální)

V tomto článku se dozvíte, jak se připojit ke zdrojům dat umístěným mimo Azure, aby byla tato data dostupná pro služby Azure Machine Learning. Připojení Azure slouží jako proxy trezoru klíčů a interakce s připojeními jsou přímé interakce se službou Azure Key Vault. Připojení ke službě Azure Machine Learning bezpečně ukládá prostředky dat uživatelského jména a hesla jako tajné kódy v trezoru klíčů. RBAC trezoru klíčů řídí přístup k těmto datovým prostředkům. Pro tuto dostupnost dat podpora Azure připojení k těmto externím zdrojům:

  • Snowflake DB
  • Amazon S3
  • Azure SQL DB

Důležité

Tato funkce je v současné době ve verzi Public Preview. Tato verze Preview je poskytována bez smlouvy o úrovni služeb a nedoporučujeme ji pro produkční úlohy. Některé funkce se nemusí podporovat nebo mohou mít omezené možnosti.

Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.

Požadavky

Důležité

Připojení ke službě Azure Machine Learning bezpečně ukládá přihlašovací údaje předávané během vytváření připojení ve službě Azure Key Vault pracovního prostoru. Připojení odkazuje na přihlašovací údaje z umístění úložiště trezoru klíčů pro další použití. Po uložení v trezoru klíčů nemusíte s přihlašovacími údaji pracovat přímo. Máte možnost uložit přihlašovací údaje do souboru YAML. Příkaz rozhraní příkazového řádku nebo sada SDK je může přepsat. Doporučujeme vyhnout se ukládání přihlašovacích údajů v souboru YAML, protože porušení zabezpečení může vést k úniku přihlašovacích údajů.

Poznámka:

Pro úspěšný import dat ověřte, že jste nainstalovali nejnovější balíček azure-ai-ml (verze 1.5.0 nebo novější) pro sadu SDK a rozšíření ml (verze 2.15.1 nebo novější).

Pokud máte starší balíček sady SDK nebo rozšíření rozhraní příkazového řádku, odeberte starý balíček nebo rozšíření rozhraní příkazového řádku a nainstalujte nový balíček s kódem zobrazeným v části karta. Postupujte podle pokynů pro sadu SDK a rozhraní příkazového řádku, jak je znázorněno tady:

Verze kódu

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)

Vytvoření připojení Snowflake DB

Tento soubor YAML vytvoří připojení Snowflake DB. Nezapomeňte aktualizovat příslušné hodnoty:

# 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

Vytvořte připojení ke službě Azure Machine Learning v rozhraní příkazového řádku:

Možnost 1: Použití uživatelského jména a hesla v souboru YAML

az ml connection create --file my_snowflakedb_connection.yaml

Možnost 2: Přepsání uživatelského jména a hesla na příkazovém řádku

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

Vytvoření připojení Snowflake DB, které používá OAuth

Informace v této části popisují, jak vytvořit připojení Snowflake DB, které k ověření používá OAuth.

Důležité

Než budete postupovat podle kroků v této části, musíte nejprve nakonfigurovat Azure, aby vystavil tokeny OAuth jménem klienta. Tato konfigurace vytvoří instanční objekt, který se vyžaduje pro připojení OAuth. K vytvoření připojení potřebujete následující informace:

  • ID klienta: ID instančního objektu
  • Tajný klíč klienta: Tajný kód instančního objektu
  • ID tenanta: ID tenanta Microsoft Entra ID

Tento soubor YAML vytvoří připojení Snowflake DB, které používá OAuth. Nezapomeňte aktualizovat příslušné hodnoty:

# 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

Vytvořte připojení ke službě Azure Machine Learning v rozhraní příkazového řádku:

az ml connection create --file my_snowflakedb_connection.yaml

Informace v souboru YAML můžete také přepsat na příkazovém řádku:

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"

Vytvoření připojení ke službě Azure SQL DB

Tento skript YAML vytvoří připojení k Databázi Azure SQL. Nezapomeňte aktualizovat příslušné hodnoty:

# 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

Vytvořte připojení ke službě Azure Machine Learning v rozhraní příkazového řádku:

Možnost 1: Použití uživatelského jména a hesla ze souboru YAML

az ml connection create --file my_sqldb_connection.yaml

Možnost 2: Přepsání uživatelského jména a hesla v souboru YAML

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

Vytvoření připojení Amazon S3

Vytvořte připojení Amazon S3 s následujícím souborem YAML. Nezapomeňte aktualizovat příslušné hodnoty:

# 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

Vytvořte připojení ke službě Azure Machine Learning v rozhraní příkazového řádku:

az ml connection create --file my_s3_connection.yaml

Ne-datová připojení

K připojení k Gitu můžete použít tyto typy připojení:

  • Informační kanál Pythonu
  • Azure Container Registry
  • připojení, které používá klíč rozhraní API

Tato připojení nejsou datová připojení, ale slouží k připojení k externím službám pro použití v kódu.

Git

Vytvořte připojení Gitu s jedním z následujících souborů YAML. Nezapomeňte aktualizovat příslušné hodnoty:

  • Připojení pomocí tokenu PAT ( Personal Access Token):

    #Connection.yml
    name: test_ws_conn_git_pat
    type: git
    target: https://github.com/contoso/contosorepo
    credentials:
        type: pat
        pat: dummy_pat
    
  • Připojení k veřejnému úložišti (bez přihlašovacích údajů):

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

Vytvořte připojení ke službě Azure Machine Learning v rozhraní příkazového řádku:

az ml connection create --file connection.yaml

Informační kanál Pythonu

Vytvořte připojení k informačnímu kanálu Pythonu s jedním z následujících souborů YAML. Nezapomeňte aktualizovat příslušné hodnoty:

  • Připojení pomocí tokenu PAT ( Personal Access Token):

    #Connection.yml
    name: test_ws_conn_python_pat
    type: python_feed
    target: https://test-feed.com
    credentials:
        type: pat
        pat: dummy_pat
    
  • Připojte se pomocí uživatelského jména a hesla:

    name: test_ws_conn_python_user_pass
    type: python_feed
    target: https://test-feed.com
    credentials:
        type: username_password
        username: <username>
        password: <password>
    
    
  • Připojení k veřejnému informačnímu kanálu (bez přihlašovacích údajů):

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

Vytvořte připojení ke službě Azure Machine Learning v rozhraní příkazového řádku:

az ml connection create --file connection.yaml

Container Registry

Vytvořte připojení ke službě Azure Container Registry s jedním z následujících souborů YAML. Nezapomeňte aktualizovat příslušné hodnoty:

  • Připojte se pomocí uživatelského jména a hesla:

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

Vytvořte připojení ke službě Azure Machine Learning v rozhraní příkazového řádku:

az ml connection create --file connection.yaml

Klíč rozhraní API

Následující příklad vytvoří připojení klíče rozhraní 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)

Generic Container Registry

Pomocí připojení pracovního prostoru GenericContainerRegistry můžete pro sestavení imagí zadat externí registr, například Nexus nebo Artifactory. Image prostředí se odsílají ze zadaného registru a předchozí mezipaměť se ignoruje.

Vytvořte připojení pomocí následujících souborů YAML. Nezapomeňte aktualizovat příslušné hodnoty:

#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

Vytvořte připojení ze souboru YAML pomocí svých přihlašovacích údajů:

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

Vytvoření prostředí

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

Můžete ověřit, že se prostředí úspěšně vytvořilo.

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

Pokud používáte datové připojení (Snowflake DB, Amazon S3 nebo Azure SQL DB), nabízejí tyto články další informace: