Bagikan melalui


Membuat koneksi (pratinjau)

BERLAKU UNTUK:Ekstensi ml Azure CLI v2 (saat ini)Python SDK azure-ai-ml v2 (saat ini)

Dalam artikel ini, pelajari cara menyambungkan ke sumber data yang terletak di luar Azure, untuk membuat data tersebut tersedia untuk layanan Azure Pembelajaran Mesin. Koneksi Azure berfungsi sebagai proksi brankas kunci, dan interaksi dengan koneksi adalah interaksi langsung dengan brankas kunci Azure. Koneksi Azure Pembelajaran Mesin menyimpan sumber daya data nama pengguna dan kata sandi dengan aman, sebagai rahasia, di brankas kunci. RBAC brankas kunci mengontrol akses ke sumber daya data ini. Untuk ketersediaan data ini, Azure mendukung koneksi ke sumber eksternal ini:

  • Snowflake DB
  • Amazon S3
  • Azure SQL DB

Penting

Fitur ini masih dalam pratinjau umum. Versi pratinjau ini disediakan tanpa perjanjian tingkat layanan, dan tidak disarankan untuk beban kerja produksi. Fitur tertentu mungkin tidak didukung atau mungkin memiliki kemampuan terbatas.

Untuk mengetahui informasi selengkapnya, lihat Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure.

Prasyarat

Penting

Koneksi Azure Pembelajaran Mesin menyimpan kredensial yang diteruskan dengan aman selama pembuatan koneksi di Ruang Kerja Azure Key Vault. Koneksi mereferensikan kredensial dari lokasi penyimpanan brankas kunci untuk digunakan lebih lanjut. Anda tidak perlu langsung menangani kredensial setelah disimpan di brankas kunci. Anda memiliki opsi untuk menyimpan kredensial dalam file YAML. Perintah CLI atau SDK dapat mengambil alihnya. Kami menyarankan agar Anda menghindari penyimpanan kredensial dalam file YAML, karena pelanggaran keamanan dapat menyebabkan kebocoran kredensial.

Catatan

Untuk impor data yang berhasil, pastikan Anda menginstal paket azure-ai-ml terbaru (versi 1.5.0 atau yang lebih baru) untuk SDK, dan ekstensi ml (versi 2.15.1 atau yang lebih baru).

Jika Anda memiliki paket SDK atau ekstensi CLI yang lebih lama, silakan hapus yang lama dan instal yang baru dengan kode yang ditunjukkan di bagian tab. Ikuti instruksi untuk SDK dan CLI seperti yang ditunjukkan di sini:

Versi kode

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)

Membuat koneksi Snowflake DB

File YAML ini membuat koneksi Snowflake DB. Pastikan untuk memperbarui nilai yang sesuai:

# 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

Buat koneksi Azure Pembelajaran Mesin di CLI:

Opsi 1: Gunakan nama pengguna dan kata sandi dalam file YAML

az ml connection create --file my_snowflakedb_connection.yaml

Opsi 2: Mengganti nama pengguna dan kata sandi di baris perintah

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

Membuat koneksi Snowflake DB yang menggunakan OAuth

Informasi di bagian ini menjelaskan cara membuat koneksi Snowflake DB yang menggunakan OAuth untuk mengautentikasi.

Penting

Sebelum mengikuti langkah-langkah di bagian ini, Anda harus terlebih dahulu Mengonfigurasi Azure untuk menerbitkan token OAuth atas nama klien. Konfigurasi ini membuat perwakilan layanan, yang diperlukan untuk koneksi OAuth. Anda memerlukan informasi berikut untuk membuat koneksi:

  • ID Klien: ID perwakilan layanan
  • Rahasia Klien: Rahasia perwakilan layanan
  • ID Penyewa: ID penyewa ID Microsoft Entra

File YAML ini membuat koneksi Snowflake DB yang menggunakan OAuth. Pastikan untuk memperbarui nilai yang sesuai:

# 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

Buat koneksi Azure Pembelajaran Mesin di CLI:

az ml connection create --file my_snowflakedb_connection.yaml

Anda juga dapat mengambil alih informasi dalam file YAML di baris perintah:

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"

Membuat koneksi Azure SQL DB

Skrip YAML ini membuat koneksi Azure SQL DB. Pastikan untuk memperbarui nilai yang sesuai:

# 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

Buat koneksi Azure Pembelajaran Mesin di CLI:

Opsi 1: Gunakan nama pengguna / kata sandi dari file YAML

az ml connection create --file my_sqldb_connection.yaml

Opsi 2: Mengganti nama pengguna dan kata sandi dalam file YAML

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

Membuat koneksi Amazon S3

Buat koneksi Amazon S3 dengan file YAML berikut. Pastikan untuk memperbarui nilai yang sesuai:

# 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

Buat koneksi Azure Pembelajaran Mesin di CLI:

az ml connection create --file my_s3_connection.yaml

Koneksi non-data

Anda dapat menggunakan jenis koneksi ini untuk menyambungkan ke Git:

  • Umpan Python
  • Azure Container Registry
  • koneksi yang menggunakan kunci API

Koneksi ini bukan koneksi data, tetapi digunakan untuk menyambungkan ke layanan eksternal untuk digunakan dalam kode Anda.

Git

Buat koneksi Git dengan salah satu file YAML berikut. Pastikan untuk memperbarui nilai yang sesuai:

  • Sambungkan menggunakan token akses pribadi (PAT):

    #Connection.yml
    name: test_ws_conn_git_pat
    type: git
    target: https://github.com/contoso/contosorepo
    credentials:
        type: pat
        pat: dummy_pat
    
  • Sambungkan ke repositori publik (tanpa kredensial):

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

Buat koneksi Azure Pembelajaran Mesin di CLI:

az ml connection create --file connection.yaml

Umpan Python

Buat koneksi ke umpan Python dengan salah satu file YAML berikut. Pastikan untuk memperbarui nilai yang sesuai:

  • Sambungkan menggunakan token akses pribadi (PAT):

    #Connection.yml
    name: test_ws_conn_python_pat
    type: python_feed
    target: https://test-feed.com
    credentials:
        type: pat
        pat: dummy_pat
    
  • Sambungkan menggunakan nama pengguna dan kata sandi:

    name: test_ws_conn_python_user_pass
    type: python_feed
    target: https://test-feed.com
    credentials:
        type: username_password
        username: <username>
        password: <password>
    
    
  • Sambungkan ke umpan publik (tanpa kredensial):

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

Buat koneksi Azure Pembelajaran Mesin di CLI:

az ml connection create --file connection.yaml

Container Registry

Buat koneksi ke Azure Container Registry dengan salah satu file YAML berikut. Pastikan untuk memperbarui nilai yang sesuai:

  • Sambungkan menggunakan nama pengguna dan kata sandi:

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

Buat koneksi Azure Pembelajaran Mesin di CLI:

az ml connection create --file connection.yaml

Kunci API

Contoh berikut membuat koneksi kunci 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)

Registri Kontainer Generik

Dengan menggunakan koneksi ruang kerja GenericContainerRegistry, Anda dapat menentukan registri eksternal, seperti Nexus atau Artifactory, untuk build gambar. Gambar lingkungan didorong dari registri yang ditentukan, dan cache sebelumnya diabaikan.

Buat koneksi menggunakan file YAML berikut. Pastikan untuk memperbarui nilai yang sesuai:

#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

Buat koneksi dari file YAML dengan kredensial Anda:

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

Membuat lingkungan

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

Anda dapat memverifikasi bahwa lingkungan berhasil dibuat

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

Jika Anda menggunakan koneksi data (Snowflake DB, Amazon S3, atau Azure SQL DB), artikel ini menawarkan informasi selengkapnya: