Bu makalede, azure dışında bulunan veri kaynaklarına bağlanmayı ve bu verileri Azure Machine Learning hizmetlerinin kullanımına sunmayı öğrenin. Azure bağlantıları anahtar kasası proxy'leri görevi görür ve bağlantılarla etkileşimler bir Azure anahtar kasasıyla doğrudan etkileşimlerdir. Azure Machine Learning bağlantısı, kullanıcı adı ve parola veri kaynaklarını gizli diziler olarak bir anahtar kasasında güvenli bir şekilde depolar. Anahtar kasası RBAC, bu veri kaynaklarına erişimi denetler. Bu veri kullanılabilirliği için, bu dış kaynaklara bağlantıları Azure desteği:
Snowflake DB
Amazon S3
Azure SQL DB
Önemli
Bu özellik şu anda genel önizlemededir. Bu önizleme sürümü hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için bu sürümü önermeyiz. Bazı özellikler desteklenmiyor olabileceği gibi özellikleri sınırlandırılmış da olabilir.
Azure Machine Learning bağlantısı, bağlantı oluşturma sırasında geçirilen kimlik bilgilerini Çalışma Alanı Azure Key Vault'ta güvenli bir şekilde depolar. Bağlantı, daha fazla kullanım için anahtar kasası depolama konumundaki kimlik bilgilerine başvurur. Kimlik bilgileri anahtar kasasında depolandıktan sonra doğrudan ilgilenmeniz gerekmez. Kimlik bilgilerini YAML dosyasında depolama seçeneğiniz vardır. CLI komutu veya SDK bunları geçersiz kılabilir. Bir güvenlik ihlali kimlik bilgisi sızıntısına neden olabileceğinden YAML dosyasında kimlik bilgisi depolamasından kaçınmanızı öneririz.
Not
Başarılı bir veri içeri aktarma işlemi için sdk için en son azure-ai-ml paketini (sürüm 1.5.0 veya üzeri) ve ml uzantısını (sürüm 2.15.1 veya üzeri) yüklediğinizi doğrulayın.
Daha eski bir SDK paketiniz veya CLI uzantınız varsa, lütfen eskisini kaldırın ve yenisini sekme bölümünde gösterilen kodla yükleyin. Burada gösterildiği gibi SDK ve CLI yönergelerini izleyin:
Bu YAML dosyası bir Snowflake DB bağlantısı oluşturur. Uygun değerleri güncelleştirin:
# 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'da Azure Machine Learning bağlantısı oluşturun:
Seçenek 1: YAML dosyasında kullanıcı adını ve parolayı kullanma
az ml connection create --file my_snowflakedb_connection.yaml
2. Seçenek: Komut satırında kullanıcı adını ve parolayı geçersiz kılma
az ml connection create --file my_snowflakedb_connection.yaml --set credentials.
username="<username>" credentials.
password="<password>"
from azure.ai.ml import MLClient
from azure.ai.ml.entities import WorkspaceConnection
from azure.ai.ml.entities import UsernamePasswordConfiguration
# If using username/password, the name/password values should be url-encoded
import urllib.parse
username = urllib.parse.quote(os.environ["SNOWFLAKEDB_USERNAME"], safe="")
password = urllib.parse.quote(os.environ["SNOWFLAKEDB_PASSWORD"], safe="")
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
name= <my_snowflake_connection> # name of the connection
wps_connection = WorkspaceConnection(name= name,
type="snowflake",
target= target,
credentials= UsernamePasswordConfiguration(username=username, password=password)
)
ml_client.connections.create_or_update(workspace_connection=wps_connection)
Sol gezinti bölmesindeki Varlıklar'ın altında Veri'yi seçin. Ardından Veri Bağlantısı sekmesini seçin. Ardından bu ekran görüntüsünde gösterildiği gibi Oluştur'u seçin:
Bağlantı oluştur bölmesinde, değerleri ekran görüntüsünde gösterildiği gibi doldurun. Kategori için Snowflake'i ve Kimlik doğrulama türü için Kullanıcı adı parolasını seçin. Hedef metin kutusu değerini bu biçimde belirttiğinizden emin olun ve karakterler arasında <> belirli değerlerinizi girin:
Kimlik bilgilerini ilgili çalışma alanıyla ilişkilendirilmiş anahtar kasasında güvenli bir şekilde depolamak için Kaydet'i seçin. Bu bağlantı, bir veri içeri aktarma işi çalıştırılırken kullanılır.
OAuth kullanan bir Snowflake DB bağlantısı oluşturma
Bu bölümdeki bilgiler, kimlik doğrulaması için OAuth kullanan bir Snowflake DB bağlantısının nasıl oluşturulacağını açıklar.
Önemli
Bu bölümdeki adımları takip etmeden önce azure'ı istemci adına OAuth belirteçleri vermek üzere yapılandırmanız gerekir. Bu yapılandırma, OAuth bağlantısı için gereken bir hizmet sorumlusu oluşturur. Bağlantıyı oluşturmak için aşağıdaki bilgilere ihtiyacınız vardır:
İstemci Kimliği: Hizmet sorumlusunun kimliği
İstemci Gizli Anahtarı: Hizmet sorumlusunun gizli dizisi
Kiracı Kimliği: Microsoft Entra Id kiracısının kimliği
Bu YAML dosyası, OAuth kullanan bir Snowflake DB bağlantısı oluşturur. Uygun değerleri güncelleştirin:
# 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'da Azure Machine Learning bağlantısı oluşturun:
az ml connection create --file my_snowflakedb_connection.yaml
YaML dosyasındaki bilgileri komut satırından da geçersiz kılabilirsiniz:
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"
Python SDK'sı ile YAML dosyasında depolanan bağlantı bilgilerini yükleyerek bir bağlantı oluşturabilirsiniz. İsteğe bağlı olarak değerleri geçersiz kılabilirsiniz:
YaML dosyasına bağlı kalmadan python betiğinde bağlantı bilgilerini doğrudan da belirtebilirsiniz:
from azure.ai.ml import MLClient
from azure.ai.ml.entities import WorkspaceConnection
from azure.ai.ml.entities import ServicePrincipalConfiguration
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
name= <my_snowflake_connection> # name of the connection
auth = ServicePrincipalConfiguration(client_id="<my-client-id>", client_secret="<my-client-secret>", tenant_id="<my-tenant-id>")
wps_connection = WorkspaceConnection(name= name,
type="snowflake",
target=target,
credentials=auth
)
ml_client.connections.create_or_update(workspace_connection=wps_connection)
Not
Hizmet sorumlusu kullanarak Snowflake DB bağlantısı oluşturma (OAuth için) yalnızca Azure CLI veya Python SDK'sı aracılığıyla kullanılabilir.
Bu YAML betiği bir Azure SQL DB bağlantısı oluşturur. Uygun değerleri güncelleştirin:
# 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'da Azure Machine Learning bağlantısı oluşturun:
Seçenek 1: YAML dosyasındaki kullanıcı adını / parolayı kullanın
az ml connection create --file my_sqldb_connection.yaml
Seçenek 2: YAML dosyasında kullanıcı adını ve parolayı geçersiz kılma
az ml connection create --file my_sqldb_connection.yaml --set credentials.
username="<username>" credentials.
password="<password>"
from azure.ai.ml import MLClient
from azure.ai.ml.entities import WorkspaceConnection
from azure.ai.ml.entities import UsernamePasswordConfiguration
# If using username/password, the name/password values should be url-encoded
import urllib.parse
username = urllib.parse.quote(os.environ["MYSQL_USERNAME"], safe="")
password = urllib.parse.quote(os.environ["MYSQL_PASSWORD"], safe="")
target= "Server=tcp:<myservername>,<port>;Database=<mydatabase>;Trusted_Connection=False;Encrypt=True;Connection Timeout=30"
# add the sql servername, port address and database
name= <my_sql_connection> # name of the connection
wps_connection = WorkspaceConnection(name= name,
type="azure_sql_db",
target= target,
credentials= UsernamePasswordConfiguration(username=username, password=password)
)
ml_client.connections.create_or_update(workspace_connection=wps_connection)
Sol gezinti bölmesindeki Varlıklar'ın altında Veri'yi seçin. Ardından Veri Bağlantısı sekmesini seçin. Ardından bu ekran görüntüsünde gösterildiği gibi Oluştur'u seçin:
Bağlantı oluştur bölmesinde, değerleri ekran görüntüsünde gösterildiği gibi doldurun. Kategori için AzureSqlDb'yi ve Kimlik doğrulama türü için Kullanıcı adı parolasını seçin. Hedef metin kutusu değerini bu biçimde belirttiğinizden emin olun ve karakterler arasında <> belirli değerlerinizi girin:
Server=tcp:<myservername,port>><; Database=<mydatabase>; Trusted_Connection=Yanlış; Encrypt=True; Bağlantı Zaman Aşımı=30
from azure.ai.ml import MLClient
from azure.ai.ml.entities import WorkspaceConnection
from azure.ai.ml.entities import AccessKeyConfiguration
target=<mybucket> # add the s3 bucket details
name=<my_s3_connection> # name of the connection
wps_connection=WorkspaceConnection(name=name,
type="s3",
target= target,
credentials= AccessKeyConfiguration(access_key_id="XXXJ5kL6mN7oP8qR9sT0uV1wX2yZ3aB4cXXX",acsecret_access_key="C2dE3fH4iJ5kL6mN7oP8qR9sT0uV1w")
)
ml_client.connections.create_or_update(workspace_connection=wps_connection)
Sol gezinti bölmesindeki Varlıklar'ın altında Veri'yi seçin. Ardından Veri Bağlantısı sekmesini seçin. Ardından bu ekran görüntüsünde gösterildiği gibi Oluştur'u seçin:
Bağlantı oluştur bölmesinde, değerleri ekran görüntüsünde gösterildiği gibi doldurun. Kategori için S3'i ve Kimlik doğrulama türü için Kullanıcı adı parolasını seçin. Hedef metin kutusu değerini bu biçimde belirttiğinizden emin olun ve karakterler arasında <> belirli değerlerinizi girin:
<hedef>
Veri olmayan bağlantılar
Git'e bağlanmak için şu bağlantı türlerini kullanabilirsiniz:
Python akışı
Azure Container Registry
API anahtarı kullanan bir bağlantı
Bu bağlantılar veri bağlantıları değildir, ancak kodunuzda kullanılmak üzere dış hizmetlere bağlanmak için kullanılır.
CLI'da Azure Machine Learning bağlantısı oluşturun:
az ml connection create --file connection.yaml
Aşağıdaki örnek bir Azure Container Registry bağlantısı oluşturur. Yönetilen kimlik bu bağlantının kimliğini doğrular:
from azure.ai.ml.entities import WorkspaceConnection
from azure.ai.ml.entities import UsernamePasswordConfiguration
# If using username/password, the name/password values should be url-encoded
import urllib.parse
username = urllib.parse.quote(os.environ["REGISTRY_USERNAME"], safe="")
password = urllib.parse.quote(os.environ["REGISTRY_PASSWORD"], safe="")
name = "my_acr_conn"
target = "https://iJ5kL6mN7.core.windows.net/mycontainer"
wps_connection = WorkspaceConnection(
name=name,
type="container_registry",
target=target,
credentials=UsernamePasswordConfiguration(username=username, password=password),
)
ml_client.connections.create_or_update(workspace_connection=wps_connection)
Studio'da Azure Container Registry bağlantısı oluşturamazsınız.
API key
Aşağıdaki örnek bir API anahtarı bağlantısı oluşturur:
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)
Genel Kapsayıcı Kayıt Defteri
GenericContainerRegistry çalışma alanı bağlantısını kullanarak, görüntü derlemeleri için Nexus veya Artifactory gibi bir dış kayıt defteri belirtebilirsiniz. Ortam görüntüleri belirtilen kayıt defterinden gönderilir ve önceki önbellek yoksayılır.