Поделиться через


Создание подключений (предварительная версия)

ОБЛАСТЬ ПРИМЕНЕНИЯ:Расширение машинного обучения Azure CLI версии 2 (current)Python SDK azure-ai-ml версии 2 (current)

Из этой статьи вы узнаете, как подключиться к источникам данных, расположенным за пределами Azure, чтобы сделать эти данные доступными для Машинное обучение Azure служб. Подключения Azure служат прокси-серверами хранилища ключей, а взаимодействие с подключениями — это прямое взаимодействие с хранилищем ключей Azure. Подключение Машинное обучение Azure безопасно сохраняет ресурсы данных имени пользователя и пароля в качестве секретов в хранилище ключей. RBAC хранилища ключей управляет доступом к этим ресурсам данных. Для обеспечения доступности данных поддержка Azure подключения к этим внешним источникам:

  • Snowflake DB
  • Amazon S3
  • Базой данных SQL Azure

Внимание

Эта функция сейчас доступна в виде общедоступной предварительной версии. Эта предварительная версия предоставляется без соглашения об уровне обслуживания. Ее не следует использовать для производственных рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены.

Дополнительные сведения см. в статье Дополнительные условия использования Предварительных версий Microsoft Azure.

Необходимые компоненты

Внимание

Подключение Машинное обучение Azure безопасно сохраняет учетные данные, передаваемые во время создания подключения в Azure Key Vault рабочей области. Подключение ссылается на учетные данные из расположения хранилища ключей для дальнейшего использования. Вам не нужно напрямую работать с учетными данными после их хранения в хранилище ключей. У вас есть возможность хранить учетные данные в файле YAML. Команда CLI или пакет SDK могут переопределить их. Рекомендуется избежать хранения учетных данных в файле YAML, так как нарушение безопасности может привести к утечке учетных данных.

Примечание.

Для успешного импорта данных убедитесь, что установлен последний пакет azure-ai-ml (версия 1.5.0 или более поздней версии) для пакета SDK, а также расширение ml (версия 2.15.1 или более поздней версии).

Если у вас есть более старый пакет SDK или расширение CLI, удалите старый и установите новый с кодом, показанным в разделе вкладки. Следуйте инструкциям по пакету SDK и CLI, как показано здесь:

Версии кода

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)

Создание подключения к базе данных Snowflake

Этот ФАЙЛ YAML создает подключение Snowflake DB. Обязательно обновите соответствующие значения:

# 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

Создайте подключение Машинное обучение Azure в CLI:

Вариант 1. Использование имени пользователя и пароля в YAML-файле

az ml connection create --file my_snowflakedb_connection.yaml

Вариант 2. Переопределение имени пользователя и пароля в командной строке

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

Создание подключения к базе данных Snowflake, использующего OAuth

В этом разделе описывается, как создать подключение К DB Snowflake, использующее OAuth для проверки подлинности.

Внимание

Прежде чем выполнять действия в этом разделе, необходимо сначала настроить Azure для выдачи маркеров OAuth от имени клиента. Эта конфигурация создает субъект-службу, который требуется для подключения OAuth. Чтобы создать подключение, вам потребуется следующая информация:

  • Идентификатор клиента: идентификатор субъекта-службы
  • Секрет клиента: секрет субъекта-службы
  • Идентификатор клиента: идентификатор клиента Microsoft Entra ID

Этот ФАЙЛ YAML создает соединение Snowflake DB, использующее OAuth. Обязательно обновите соответствующие значения:

# 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

Создайте подключение Машинное обучение Azure в CLI:

az ml connection create --file my_snowflakedb_connection.yaml

Вы также можете переопределить сведения в файле YAML в командной строке:

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"

Создание подключения к базе данных SQL Azure

Этот скрипт YAML создает подключение к базе данных SQL Azure. Обязательно обновите соответствующие значения:

# 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

Создайте подключение Машинное обучение Azure в CLI:

Вариант 1. Использование имени пользователя и пароля из YAML-файла

az ml connection create --file my_sqldb_connection.yaml

Вариант 2. Переопределение имени пользователя и пароля в YAML-файле

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

Создание подключения Amazon S3

Создайте подключение Amazon S3 со следующим файлом YAML. Обязательно обновите соответствующие значения:

# 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

Создайте подключение Машинное обучение Azure в CLI:

az ml connection create --file my_s3_connection.yaml

Подключения, отличные от данных

Эти типы подключений можно использовать для подключения к Git:

  • Веб-канал Python
  • Реестр контейнеров Azure
  • подключение, использующее ключ API

Эти подключения не являются подключениями к данным, но используются для подключения к внешним службам для использования в коде.

Git

Создайте подключение Git с одним из следующих файлов YAML. Обязательно обновите соответствующие значения:

  • Подключение с помощью личного маркера доступа (PAT):

    #Connection.yml
    name: test_ws_conn_git_pat
    type: git
    target: https://github.com/contoso/contosorepo
    credentials:
        type: pat
        pat: dummy_pat
    
  • Подключение к общедоступному репозиторию (без учетных данных):

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

Создайте подключение Машинное обучение Azure в CLI:

az ml connection create --file connection.yaml

Веб-канал Python

Создайте подключение к веб-каналу Python с одним из следующих файлов YAML. Обязательно обновите соответствующие значения:

  • Подключение с помощью личного маркера доступа (PAT):

    #Connection.yml
    name: test_ws_conn_python_pat
    type: python_feed
    target: https://test-feed.com
    credentials:
        type: pat
        pat: dummy_pat
    
  • Подключитесь с помощью имени пользователя и пароля:

    name: test_ws_conn_python_user_pass
    type: python_feed
    target: https://test-feed.com
    credentials:
        type: username_password
        username: <username>
        password: <password>
    
    
  • Подключение к общедоступному веб-каналу (без учетных данных):

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

Создайте подключение Машинное обучение Azure в CLI:

az ml connection create --file connection.yaml

Реестр контейнеров

Создайте подключение к Реестр контейнеров Azure с одним из следующих файлов YAML. Обязательно обновите соответствующие значения:

  • Подключитесь с помощью имени пользователя и пароля:

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

Создайте подключение Машинное обучение Azure в CLI:

az ml connection create --file connection.yaml

Ключ API

В следующем примере создается подключение ключа 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)

Универсальный реестр контейнеров

С помощью подключения к рабочей области GenericContainerRegistry можно указать внешний реестр, например Nexus или Artifactory, для сборок образов. Образы среды отправляются из указанного реестра, а предыдущий кэш игнорируется.

Создайте подключение с помощью следующих файлов YAML. Обязательно обновите соответствующие значения:

#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

Создайте подключение из YAML-файла с учетными данными:

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

Создать окружение

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

Вы можете убедиться, что среда успешно создана

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

Если вы используете подключение к данным (Snowflake DB, Amazon S3 или Базу данных SQL Azure), эти статьи предоставляют дополнительные сведения: