다음을 통해 공유


연결 만들기(미리 보기)

적용 대상:Azure CLI ml 확장 v2(현재)Python SDK azure-ai-ml v2(현재)

이 문서에서는 Azure Machine Learning Services에서 해당 데이터를 사용할 수 있도록 Azure 외부에 있는 데이터 원본에 연결하는 방법을 알아봅니다. Azure 연결은 키 자격 증명 모음 프록시 역할을 하며, 연결과의 상호 작용은 Azure Key Vault와의 직접적인 상호 작용입니다. Azure Machine Learning 연결은 사용자 이름 및 암호 데이터 리소스를 키 자격 증명 모음에 비밀로 안전하게 저장합니다. 키 자격 증명 모음 RBAC는 이러한 데이터 리소스에 대한 액세스를 제어합니다. 이러한 데이터 가용성을 위해 Azure는 다음과 같은 외부 원본에 대한 연결을 지원합니다.

  • Snowflake DB
  • Amazon S3
  • Azure SQL DB

Important

이 기능은 현재 공개 미리 보기로 제공됩니다. 이 미리 보기 버전은 서비스 수준 계약 없이 제공되며, 프로덕션 워크로드에는 권장되지 않습니다. 특정 기능이 지원되지 않거나 기능이 제한될 수 있습니다.

자세한 내용은 Microsoft Azure Preview에 대한 추가 사용 약관을 참조하세요.

필수 구성 요소

Important

Azure Machine Learning 연결은 연결을 만드는 동안 전달된 자격 증명을 Workspace Azure Key Vault에 안전하게 저장합니다. 연결은 추가 사용을 위해 키 자격 증명 모음 스토리지 위치의 자격 증명을 참조하세요. 자격 증명이 키 자격 증명 모음에 저장된 후에는 직접 처리할 필요가 없습니다. YAML 파일에 자격 증명을 저장할 수 있는 옵션이 있습니다. CLI 명령이나 SDK가 이를 재정의할 수 있습니다. 보안 위반으로 인해 자격 증명이 유출될 수 있으므로 YAML 파일에 자격 증명 스토리지를 사용하지 않는 것이 좋습니다.

참고 항목

성공적인 데이터 가져오기를 위해서는 SDK용 최신 azure-ai-ml 패키지(버전 1.5.0 이상)와 ml 확장(버전 2.15.1 이상)을 설치했는지 확인하세요.

이전 SDK 패키지 또는 CLI 확장이 있는 경우 이전 패키지를 제거하고 탭 섹션에 표시된 코드를 사용하여 새 패키지를 설치하세요. 여기에 표시된 SDK 및 CLI 지침을 따릅니다.

Code versions

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 DB 연결 만들기

이 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

CLI에서 Azure Machine Learning 연결을 만듭니다.

옵션 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>"

OAuth를 사용하는 Snowflake DB 연결 만들기

이 섹션에서는 OAuth를 사용하여 인증하는 Snowflake DB 연결을 만드는 방법을 설명합니다.

Important

이 섹션의 단계를 따르기 전에 먼저 클라이언트를 대신하여 OAuth 토큰을 발급하도록 Azure를 구성해야 합니다. 이 구성은 OAuth 연결에 필요한 서비스 주체를 만듭니다. 연결을 만들려면 다음 정보가 필요합니다.

  • 클라이언트 ID: 서비스 주체의 ID
  • 클라이언트 암호: 서비스 주체의 비밀
  • 테넌트 ID: Microsoft Entra ID 테넌트의 ID

이 YAML 파일은 OAuth를 사용하는 Snowflake DB 연결을 만듭니다. 적절한 값을 업데이트해야 합니다.

# 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

CLI에서 Azure Machine Learning 연결을 만듭니다.

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"

Azure SQL DB 연결 만들기

이 YAML 스크립트는 Azure SQL DB 연결을 만듭니다. 적절한 값을 업데이트해야 합니다.

# 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

CLI에서 Azure Machine Learning 연결을 만듭니다.

옵션 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 연결 만들기

다음 YAML 파일을 사용하여 Amazon S3 연결을 만듭니다. 적절한 값을 업데이트해야 합니다.

# 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

CLI에서 Azure Machine Learning 연결을 만듭니다.

az ml connection create --file my_s3_connection.yaml

데이터가 아닌 연결

다음 연결 형식을 사용하여 Git에 연결할 수 있습니다.

  • Python 피드
  • Azure Container Registry
  • API 키를 사용하는 연결

이러한 연결은 데이터 연결이 아니지만 코드에서 사용하기 위해 외부 서비스에 연결하는 데 사용됩니다.

Git

다음 YAML 파일 중 하나를 사용하여 Git 연결을 만듭니다. 적절한 값을 업데이트해야 합니다.

  • 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
    
    

CLI에서 Azure Machine Learning 연결을 만듭니다.

az ml connection create --file connection.yaml

Python 피드

다음 YAML 파일 중 하나를 사용하여 Python 피드에 대한 연결을 만듭니다. 적절한 값을 업데이트해야 합니다.

  • 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
    

CLI에서 Azure Machine Learning 연결을 만듭니다.

az ml connection create --file connection.yaml

Container Registry

다음 YAML 파일 중 하나를 사용하여 Azure Container Registry에 대한 연결을 만듭니다. 적절한 값을 업데이트해야 합니다.

  • 사용자 이름과 암호를 사용하여 연결:

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

CLI에서 Azure Machine Learning 연결을 만듭니다.

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 또는 Azure SQL DB)을 사용하는 경우 다음 문서에서 자세한 정보를 제공합니다.