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
Subskrypcja platformy Azure. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto. Wypróbuj bezpłatną lub płatną wersję usługi Azure Machine Learning.
Obszar roboczy usługi Azure Machine Learning.
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
Powiązana zawartość
Jeśli używasz połączenia danych (Snowflake DB, Amazon S3 lub Azure SQL DB), następujące artykuły zawierają więcej informacji: