Erstellen von Verbindungen (Vorschau)
GILT FÜR:Azure CLI ML-Erweiterung v2 (aktuell)Python SDK azure-ai-ml v2 (aktuell)
In diesem Artikel erfahren Sie, wie Sie eine Verbindung mit Datenquellen außerhalb von Azure herstellen, um diese Daten für Azure Machine Learning Services zur Verfügung zu stellen. Azure-Verbindungen dienen als Schlüsseltresorproxys, und Interaktionen mit Verbindungen sind direkte Interaktionen mit einem Azure-Schlüsseltresor. Azure Machine Learning-Verbindungen speichern Benutzernamen- und Kennwortdatenressourcen sicher als Geheimnisse in einem Schlüsseltresor. Die rollenbasierte Schlüsseltresor-Zugriffssteuerung regelt den Zugriff auf diese Datenressourcen. Um diese Datenverfügbarkeit zu ermöglichen, unterstützt Azure Verbindungen mit diesen externen Quellen:
- Snowflake DB
- Amazon S3
- Azure SQL-Datenbank
Wichtig
Dieses Feature ist zurzeit als öffentliche Preview verfügbar. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und ist nicht für Produktionsworkloads vorgesehen. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar.
Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.
Voraussetzungen
Ein Azure-Abonnement. Wenn Sie nicht über ein Azure-Abonnement verfügen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen. Probieren Sie die kostenlose oder kostenpflichtige Version von Azure Machine Learning aus.
Ein Azure Machine Learning-Arbeitsbereich.
Wichtig
Eine Azure Machine Learning-Verbindung speichert sicher die Anmeldeinformationen, die während der Verbindungserstellung im Azure Key Vault-Arbeitsbereich übergeben wurden, sicher. Eine Verbindung verweist zur weiteren Verwendung auf die Anmeldeinformationen aus dem Schlüsseltresorspeicherort. Sie müssen sich nicht direkt mit den Anmeldeinformationen befassen, nachdem sie im Schlüsseltresor gespeichert wurden. Sie haben die Möglichkeit, die Anmeldeinformationen in der YAML-Datei zu speichern. Ein CLI-Befehl oder SDK kann sie überschreiben. Es wird empfohlen, die Speicherung von Anmeldeinformationen in einer YAML-Datei zu vermeiden, da eine Sicherheitsverletzung zu einem Verlust von Anmeldeinformationen führen kann.
Hinweis
Vergewissern Sie sich für einen erfolgreichen Datenimport, dass das neueste azure-ai-ml-Paket (Version 1.5.0 oder höher) für das SDK und die ML-Erweiterung (Version 2.15.1 oder höher) installiert sind.
Wenn Sie über ein älteres SDK-Paket oder eine ältere CLI-Erweiterung verfügen, entfernen Sie das alte Paket, und installieren Sie das neue Paket mit dem Code, der im Registerkartenabschnitt angezeigt wird. Befolgen Sie die hier gezeigten Anweisungen für SDK und CLI:
Codeversionen
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)
Erstellen einer Snowflake DB-Verbindung
Diese YAML-Datei erstellt eine Snowflake DB-Verbindung. Stellen Sie sicher, die angemessenen Werte zu aktualisieren:
# 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
Erstellen Sie die Azure Machine Learning-Verbindung im CLI:
Option 1: Verwenden Sie den Benutzernamen und Kennwort in der YAML-Datei
az ml connection create --file my_snowflakedb_connection.yaml
Option 2: Überschreiben Sie den Benutzernamen und Kennwort in der Befehlszeile
az ml connection create --file my_snowflakedb_connection.yaml --set credentials.
username="<username>" credentials.
password="<password>"
Erstellen einer Snowflake DB-Verbindung, die OAuth verwendet
In den Informationen in diesem Abschnitt wird beschrieben, wie Sie eine Snowflake DB-Verbindung erstellen, die für die Authentifizierung OAuth verwendet.
Wichtig
Bevor Sie die Schritte in diesem Abschnitt ausführen, müssen Sie zuerst Azure konfigurieren, um OAuth-Token im Auftrag des Clients auszugeben. Diese Konfiguration erstellt einen Dienstprinzipal, der für die OAuth-Verbindung erforderlich ist. Sie benötigen die folgenden Informationen, um die Verbindung zu erstellen:
- Client-ID: Die ID des Dienstprinzipals.
- Geheimer Clientschlüssel: Das Geheimnis des Dienstprinzipals
- Mandanten-ID: Die ID des Microsoft Entra ID-Mandanten
Diese YAML-Datei erstellt eine Snowflake DB-Verbindung, die OAuth verwendet. Stellen Sie sicher, die angemessenen Werte zu aktualisieren:
# 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
Erstellen Sie die Azure Machine Learning-Verbindung im CLI:
az ml connection create --file my_snowflakedb_connection.yaml
Sie können die Informationen in der YAML-Datei auch in der Befehlszeile überschreiben:
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"
Erstellen Sie eine Azure SQL DB-Verbindung
Dieses YAML-Skript erstellt eine Azure SQL DB-Verbindung. Stellen Sie sicher, die angemessenen Werte zu aktualisieren:
# 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
Erstellen Sie die Azure Machine Learning-Verbindung im CLI:
Option 1: Verwenden Sie den Benutzernamen / das Kennwort aus der YAML-Datei
az ml connection create --file my_sqldb_connection.yaml
Option 2: Überschreiben Sie den Benutzernamen und das Kennwort in der YAML-Datei
az ml connection create --file my_sqldb_connection.yaml --set credentials.
username="<username>" credentials.
password="<password>"
Erstellen Sie eine Amazon S3-Verbindung
Erstellen Sie eine Amazon S3-Verbindung mit der folgenden YAML-Datei. Stellen Sie sicher, die angemessenen Werte zu aktualisieren:
# 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
Erstellen Sie die Azure Machine Learning-Verbindung im CLI:
az ml connection create --file my_s3_connection.yaml
Nicht-Datenverbindungen
Sie können mit den folgenden Verbindungstypen eine Verbindung mit Git herstellen:
- Python-Feed
- Azure Container Registry
- Verbindungen mit einem API-Schlüssel
Diese Verbindungen sind keine Datenverbindungen, sondern werden verwendet, um eine Verbindung mit externen Diensten herzustellen, die in Ihrem Code verwendet werden.
Git
Erstellen Sie eine Git-Verbindung mit einer der folgenden YAML-Dateien. Stellen Sie sicher, die angemessenen Werte zu aktualisieren:
Herstellen einer Verbindung mithilfe eines persönlichen Zugriffstokens (PAT):
#Connection.yml name: test_ws_conn_git_pat type: git target: https://github.com/contoso/contosorepo credentials: type: pat pat: dummy_pat
Herstellen einer Verbindung mit einem öffentlichen Repository (keine Anmeldeinformationen):
#Connection.yml name: git_no_cred_conn type: git target: https://https://github.com/contoso/contosorepo
Erstellen Sie die Azure Machine Learning-Verbindung im CLI:
az ml connection create --file connection.yaml
Python-Feed
Erstellen Sie eine Verbindung mit einem Python-Feed mit einer der folgenden YAML-Dateien. Stellen Sie sicher, die angemessenen Werte zu aktualisieren:
Herstellen einer Verbindung mithilfe eines persönlichen Zugriffstokens (PAT):
#Connection.yml name: test_ws_conn_python_pat type: python_feed target: https://test-feed.com credentials: type: pat pat: dummy_pat
Herstellen einer Verbindung über Benutzernamen und Kennwort:
name: test_ws_conn_python_user_pass type: python_feed target: https://test-feed.com credentials: type: username_password username: <username> password: <password>
Herstellen einer Verbindung mit einem öffentlichen Feed (keine Anmeldeinformationen):
name: test_ws_conn_python_no_cred type: python_feed target: https://test-feed.com3
Erstellen Sie die Azure Machine Learning-Verbindung im CLI:
az ml connection create --file connection.yaml
Container Registry
Erstellen Sie eine Verbindung mit einer Azure Container Registry mit einer der folgenden YAML-Dateien. Stellen Sie sicher, die angemessenen Werte zu aktualisieren:
Herstellen einer Verbindung über Benutzernamen und Kennwort:
name: test_ws_conn_cr_user_pass type: container_registry target: https://test-feed.com2 credentials: type: username_password username: <username> password: <password>
Erstellen Sie die Azure Machine Learning-Verbindung im CLI:
az ml connection create --file connection.yaml
API-Schlüssel
Im folgenden Beispiel wird eine Verbindung zu einem API-Schlüssel erstellt:
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)
Generic Container Registry
Mithilfe der GenericContainerRegistry-Arbeitsbereichsverbindung können Sie eine externe Registrierung für Imagebuilds angeben, z. B. Nexus oder Artifactory. Umgebungsimages werden von der angegebenen Registrierung aus gepusht, und der vorherige Cache wird ignoriert.
Erstellen Sie eine Verbindung mit den folgenden YAML-Dateien. Stellen Sie sicher, die angemessenen Werte zu aktualisieren:
#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
Erstellen Sie eine Verbindung aus der YAML-Datei mit Ihren Anmeldeinformationen:
az ml connection create --file connection.yaml --credentials username=<username> password=<password> --resource-group my-resource-group --workspace-name my-workspace
Erstellen der Umgebung
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
Sie können überprüfen, ob die Umgebung erfolgreich erstellt wurde.
az ml environment show --name my-env --version 1 --resource-group my-resource-group --workspace-name my-workspace
Zugehöriger Inhalt
Wenn Sie eine Datenverbindung verwenden (Snowflake DB, Amazon S3 oder Azure SQL-Datenbank), finden Sie diesen Artikeln weitere Informationen: