Создание подключений (предварительная версия)
ОБЛАСТЬ ПРИМЕНЕНИЯ:Расширение машинного обучения 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, создайте бесплатную учетную запись, прежде чем начинать работу. Попробуйте бесплатную или платную версию Машинного обучения Azure.
Рабочая область Машинного обучения 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), эти статьи предоставляют дополнительные сведения: