Udostępnij za pośrednictwem


Tworzenie połączeń (wersja zapoznawcza)

DOTYCZY: Rozszerzenie interfejsu wiersza polecenia platformy Azure w wersji 2 (current)Zestaw PYTHON SDK azure-ai-ml v2 (bieżąca)

W tym artykule dowiesz się, jak połączyć się ze źródłami danych znajdującymi się poza platformą Azure, aby udostępnić te dane usługom Azure Machine Learning. Połączenia platformy Azure służą jako serwery proxy magazynu kluczy, a interakcje z połączeniami są bezpośrednimi interakcjami z magazynem kluczy platformy Azure. Połączenie usługi Azure Machine Learning bezpiecznie przechowuje zasoby danych nazwy użytkownika i hasła, jako wpisy tajne, w magazynie kluczy. Kontrola dostępu oparta na rolach magazynu kluczy kontroluje dostęp do tych zasobów danych. W przypadku tej dostępności danych pomoc techniczna platformy Azure połączenia z następującymi źródłami zewnętrznymi:

  • Snowflake DB
  • Amazon S3
  • Azure SQL DB

Ważne

Ta funkcja jest obecnie w publicznej wersji zapoznawczej. Ta wersja zapoznawcza jest udostępniana bez umowy dotyczącej poziomu usług i nie zalecamy korzystania z niej w przypadku obciążeń produkcyjnych. Niektóre funkcje mogą być nieobsługiwane lub ograniczone.

Aby uzyskać więcej informacji, zobacz Uzupełniające warunki korzystania z wersji zapoznawczych platformy Microsoft Azure.

Wymagania wstępne

Ważne

Połączenie usługi Azure Machine Learning bezpiecznie przechowuje poświadczenia przekazywane podczas tworzenia połączenia w obszarze roboczym usługi Azure Key Vault. Połączenie odwołuje się do poświadczeń z lokalizacji magazynu kluczy do dalszego użycia. Nie musisz bezpośrednio zajmować się poświadczeniami po ich przechowywaniu w magazynie kluczy. Istnieje możliwość przechowywania poświadczeń w pliku YAML. Polecenie interfejsu wiersza polecenia lub zestaw SDK mogą je zastąpić. Zalecamy unikanie przechowywania poświadczeń w pliku YAML, ponieważ naruszenie zabezpieczeń może prowadzić do wycieku poświadczeń.

Uwaga

W przypadku pomyślnego importowania danych sprawdź, czy zainstalowano najnowszy pakiet azure-ai-ml (wersja 1.5.0 lub nowsza) dla zestawu SDK oraz rozszerzenie ml (wersja 2.15.1 lub nowsza).

Jeśli masz starszy pakiet zestawu SDK lub rozszerzenie interfejsu wiersza polecenia, usuń stary i zainstaluj nowy przy użyciu kodu pokazanego w sekcji tabulacji. Postępuj zgodnie z instrukcjami dotyczącymi zestawu SDK i interfejsu wiersza polecenia, jak pokazano poniżej:

Wersje kodu

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)

Tworzenie połączenia usługi Snowflake DB

Ten plik YAML tworzy połączenie bazy danych Snowflake DB. Pamiętaj, aby zaktualizować odpowiednie wartości:

# 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

Utwórz połączenie usługi Azure Machine Learning w interfejsie wiersza polecenia:

Opcja 1. Użyj nazwy użytkownika i hasła w pliku YAML

az ml connection create --file my_snowflakedb_connection.yaml

Opcja 2. Przesłanianie nazwy użytkownika i hasła w wierszu polecenia

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

Tworzenie połączenia bazy danych Snowflake używającego protokołu OAuth

Informacje w tej sekcji opisano sposób tworzenia połączenia usługi Snowflake DB, które używa protokołu OAuth do uwierzytelniania.

Ważne

Przed wykonaniem kroków opisanych w tej sekcji należy najpierw skonfigurować platformę Azure w celu wystawiania tokenów OAuth w imieniu klienta. Ta konfiguracja tworzy jednostkę usługi, która jest wymagana dla połączenia OAuth. Do utworzenia połączenia potrzebne są następujące informacje:

  • Identyfikator klienta: identyfikator jednostki usługi
  • Klucz tajny klienta: wpis tajny jednostki usługi
  • Identyfikator dzierżawy: identyfikator dzierżawy microsoft Entra ID

Ten plik YAML tworzy połączenie bazy danych Snowflake, które używa protokołu OAuth. Pamiętaj, aby zaktualizować odpowiednie wartości:

# 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

Utwórz połączenie usługi Azure Machine Learning w interfejsie wiersza polecenia:

az ml connection create --file my_snowflakedb_connection.yaml

Możesz również zastąpić informacje w pliku YAML w wierszu polecenia:

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"

Tworzenie połączenia usługi Azure SQL DB

Ten skrypt YAML tworzy połączenie usługi Azure SQL DB. Pamiętaj, aby zaktualizować odpowiednie wartości:

# 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

Utwórz połączenie usługi Azure Machine Learning w interfejsie wiersza polecenia:

Opcja 1. Użyj nazwy użytkownika/hasła z pliku YAML

az ml connection create --file my_sqldb_connection.yaml

Opcja 2. Zastąpienie nazwy użytkownika i hasła w pliku YAML

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

Tworzenie połączenia usługi Amazon S3

Utwórz połączenie Amazon S3 z następującym plikiem YAML. Pamiętaj, aby zaktualizować odpowiednie wartości:

# 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

Utwórz połączenie usługi Azure Machine Learning w interfejsie wiersza polecenia:

az ml connection create --file my_s3_connection.yaml

Połączenia inne niż dane

Za pomocą tych typów połączeń można nawiązać połączenie z usługą Git:

  • Źródło danych języka Python
  • Azure Container Registry
  • połączenie korzystające z klucza interfejsu API

Te połączenia nie są połączeniami danych, ale są używane do łączenia się z usługami zewnętrznymi do użycia w kodzie.

Usługa Git

Utwórz połączenie git z jednym z następujących plików YAML. Pamiętaj, aby zaktualizować odpowiednie wartości:

  • Nawiązywanie połączenia przy użyciu osobistego tokenu dostępu (PAT):

    #Connection.yml
    name: test_ws_conn_git_pat
    type: git
    target: https://github.com/contoso/contosorepo
    credentials:
        type: pat
        pat: dummy_pat
    
  • Połącz się z publicznym repozytorium (bez poświadczeń):

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

Utwórz połączenie usługi Azure Machine Learning w interfejsie wiersza polecenia:

az ml connection create --file connection.yaml

Źródło danych języka Python

Utwórz połączenie ze źródłem danych języka Python przy użyciu jednego z następujących plików YAML. Pamiętaj, aby zaktualizować odpowiednie wartości:

  • Nawiązywanie połączenia przy użyciu osobistego tokenu dostępu (PAT):

    #Connection.yml
    name: test_ws_conn_python_pat
    type: python_feed
    target: https://test-feed.com
    credentials:
        type: pat
        pat: dummy_pat
    
  • Nawiązywanie połączenia przy użyciu nazwy użytkownika i hasła:

    name: test_ws_conn_python_user_pass
    type: python_feed
    target: https://test-feed.com
    credentials:
        type: username_password
        username: <username>
        password: <password>
    
    
  • Połącz się z publicznym źródłem danych (bez poświadczeń):

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

Utwórz połączenie usługi Azure Machine Learning w interfejsie wiersza polecenia:

az ml connection create --file connection.yaml

Container Registry

Utwórz połączenie z usługą Azure Container Registry przy użyciu jednego z następujących plików YAML. Pamiętaj, aby zaktualizować odpowiednie wartości:

  • Nawiązywanie połączenia przy użyciu nazwy użytkownika i hasła:

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

Utwórz połączenie usługi Azure Machine Learning w interfejsie wiersza polecenia:

az ml connection create --file connection.yaml

Klucz interfejsu API

Poniższy przykład tworzy połączenie klucza interfejsu 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)

Ogólny rejestr kontenerów

Za pomocą połączenia obszaru roboczego GenericContainerRegistry można określić rejestr zewnętrzny, taki jak Nexus lub Artifactory, dla kompilacji obrazów. Obrazy środowiska są wypychane z określonego rejestru, a poprzednia pamięć podręczna jest ignorowana.

Utwórz połączenie przy użyciu następujących plików YAML. Pamiętaj, aby zaktualizować odpowiednie wartości:

#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

Utwórz połączenie z pliku YAML przy użyciu poświadczeń:

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

Tworzenie środowiska

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

Możesz sprawdzić, czy środowisko zostało pomyślnie utworzone

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

Jeśli używasz połączenia danych (Snowflake DB, Amazon S3 lub Azure SQL DB), następujące artykuły zawierają więcej informacji: