Freigeben über


Erstellen externer 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 externen Datenquellen herstellen, um ihre Daten azure Machine Learning zur Verfügung zu stellen. Außerdem erfahren Sie, wie Sie eine Verbindung mit mehreren externen Nichtdatendiensten herstellen. Sie können die Azure Machine Learning CLI, das Azure Machine Learning SDK für Python oder Machine Learning Studio verwenden, um diese Verbindungen zu erstellen.

Eine Azure Machine Learning-Verbindung speichert Benutzernamen und Kennwörter sicher als geheime Schlüssel in einem Schlüsseltresor. Azure-Verknüpfungen dienen als Schlüsselbund-Proxys, und Interaktionen mit den Verknüpfungen sind direkte Interaktionen mit dem Azure Key Vault. Die rollenbasierte Zugriffssteuerung (Key Vault, RBAC) verwaltet den Zugriff auf die Datenressourcen. Sie müssen sich nicht direkt mit den Anmeldeinformationen befassen, nachdem sie im Schlüsseltresor gespeichert wurden.

Azure unterstützt Verbindungen mit den folgenden externen Quellen für die Datenverfügbarkeit:

  • Schneeflocke
  • Azure SQL-Datenbank
  • Amazon S3

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 mit der kostenlosen oder kostenpflichtigen Version von Azure Machine Learning.

  • Ein Azure Machine Learning-Arbeitsbereich.

  • Die Azure CLI mit der installierten ml-Erweiterung in Version 2.15.1 oder höher.

    Wenn Sie über eine ältere Azure CLI-Version oder Erweiterung verfügen, verwenden Sie den folgenden Code, um sie zu deinstallieren und die neue zu installieren.

    az extension remove -n ml
    az extension add -n ml --yes
    az extension show -n ml 2.15.1
    

Erstellen einer Snowflake-Datenverbindung

Sie können die Azure Machine Learning CLI, das Azure Machine Learning SDK für Python oder das Machine Learning Studio verwenden, um eine Snowflake-Datenverbindung zu erstellen, die benutzernamen-/kennwortauthentifizierung verwendet.

Sie können auch das Azure CLI- oder Python-SDK verwenden, um eine Snowflake-Verbindung zu erstellen, die OAuth mit einem Dienstprinzipal verwendet. Machine Learning Studio unterstützt das Erstellen von OAuth-Verbindungen nicht.

Erstellen einer Verbindung, die die Authentifizierung mit Benutzername/Kennwort verwendet

Um die Snowflake-Verbindung zu erstellen, erstellen Sie zuerst eine YAML-Datei, die die Verbindung definiert, und führen Sie dann einen Befehl oder ein Skript aus, das die YAML-Datei aufruft. Für Python SDK können Sie auch die Verbindungsinformationen direkt angeben, ohne eine YAML-Datei zu verwenden.

Sie können Anmeldeinformationen in der YAML-Datei speichern und die gespeicherten Anmeldeinformationen in der Azure CLI-Befehlszeile überschreiben, wenn Sie die Verbindung erstellen. Es empfiehlt sich jedoch, die Speicherung von Anmeldeinformationen in einer Datei zu vermeiden, da eine Sicherheitsverletzung zu einem Verlust von Anmeldeinformationen führen kann. Stattdessen können Sie die credentials Werte leer lassen und in der Befehlszeile angeben.

Die folgende YAML-Datei definiert eine Snowflake-Verbindung, die die Benutzernamen-/Kennwortauthentifizierung verwendet. Um die Datei zu erstellen, geben Sie ein <connection-name> an, und ersetzen Sie die <account>, <database>, <warehouse> und <role> Platzhalter durch Werte Ihres Snowflake-Kontos. Wenn Sie <role> nicht angeben, wird standardmäßig der Wert PUBLIC verwendet. Speichern Sie die Datei mit einem Namen wie my_snowflake_connection.yaml.

$schema: http://azureml/sdk-2-0/Connection.json
type: snowflake
name: <connection-name>

target: jdbc:snowflake://<account>.snowflakecomputing.com/?db=<database>&warehouse=<warehouse>&role=<role>
credentials:
    type: username_password
    username: <snowflake-username>
    password: <snowflake-password>

Führen Sie zum Erstellen der Verbindung eine der folgenden Befehlszeilen aus, und geben Sie ihren YAML-Dateinamen für den <yaml-filename> Platzhalter an.

  • Um den Benutzernamen und das Kennwort zu verwenden, den Sie in der YAML-Datei gespeichert haben, führen Sie den folgenden Befehl aus:

    az ml connection create --file <yaml-filename>.yaml
    
  • Um den Benutzernamen und das Kennwort als Teil der Befehlszeile anzugeben, führen Sie den folgenden Befehl aus und ersetzen Sie die Platzhalter <username> und <password> durch Ihre eigenen Angaben.

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

Verwenden des Azure CLI- oder Python-SDKs zum Erstellen einer Verbindung mit der OAuth-Authentifizierung

Sie können das Azure CLI oder das Python SDK verwenden, um eine Snowflake-Verbindung zu erstellen, die OAuth zur Authentifizierung über einen Dienstprinzipal nutzt.

Wichtig

Bevor Sie die Verbindung mit OAuth erstellen können, müssen Sie zuerst Azure so konfigurieren, dass OAuth-Token im Auftrag des Clients ausgegeben werden. Dieser Konfigurationsprozess erstellt den erforderlichen Dienstprinzipal für die OAuth-Verbindung.

Zum Erstellen einer OAuth-Verbindung für Azure Machine Learning benötigen Sie die folgenden Informationen:

  • Client-ID: Die ID des Dienstprinzipals
  • Client-Geheimnis: Das Dienstprinzipalgeheimnis
  • Mandanten-ID: Die ID des Microsoft Entra ID-Mandanten

Um die Verbindung zu erstellen, erstellen Sie zuerst eine YAML-Datei, die die Verbindung definiert, und führen Sie dann einen Befehl oder ein Skript aus, der die YAML-Datei aufruft. Für Python SDK können Sie auch die Verbindungsinformationen direkt angeben, ohne eine YAML-Datei zu verwenden.

Erstellen Sie die folgende YAML-Datei, um eine Snowflake-Verbindung zu definieren, die OAuth verwendet. Geben Sie einen <connection-name>, und ersetzen Sie die <account>, <database>, <warehouse>, und <service-principal-scope> Platzhalter durch die Werte aus Ihrem Snowflake-Konto. Geben Sie für Anmeldeinformationen Ihr <client-id>, <client-secret> und <tenant_id> an.

name: <connection-name>
type: snowflake
target: jdbc:snowflake://<account>.snowflakecomputing.com/?db=<database>&warehouse=<warehouse>&scope=<service-principal-scope>
credentials:
  type: service_principal
  client_id: <client-id>
  client_secret: <client-secret>
  tenant_id: <tenant-id>
  • Um die Verbindung mithilfe der in der YAML-Datei gespeicherten Anmeldeinformationen zu erstellen, führen Sie den folgenden Befehl aus, und ersetzen Sie den <yaml-filename> Platzhalter durch Ihren YAML-Dateinamen.

    az ml connection create --file <yaml-filename>.yaml
    
  • Um die Anmeldeinformationen in der YAML-Datei außer Kraft zu setzen oder Anmeldeinformationen in der Befehlszeile anzugeben, führen Sie den folgenden Befehl aus, und geben Sie Die <client-id><client-secret><tenant-id> Werte für die Platzhalter ein:

    az ml connection create --file <yaml-filename>.yaml --set credentials.client_id="<client-id>" credentials.client_secret="<client-secret>" credentials.tenant_id="<tenant-id>"
    

Erstellen einer Azure SQL-Datenbankdatenverbindung

Sie können die Azure Machine Learning CLI, das Azure Machine Learning SDK für Python oder Machine Learning Studio verwenden, um eine Azure SQL-Datenbank-Datenverbindung zu erstellen.

Um eine Azure SQL-Datenbankverbindung zu erstellen, erstellen Sie zuerst eine YAML-Datei, die die Verbindung definiert, und führen Sie dann einen Azure CLI- oder Python SDK-Befehl oder ein Skript aus, das die YAML-Datei aufruft. Für Python SDK können Sie auch die Verbindungsinformationen direkt angeben, ohne eine YAML-Datei zu verwenden.

Erstellen Sie die folgende YAML-Datei, um die Azure SQL-Datenbankverbindung zu definieren, und speichern Sie die Datei mit einem Namen wie my_azuresqldb_connection.yaml. Geben Sie einen <connection-name> an und ersetzen Sie die Platzhalter <server>, <port> und <database> durch die entsprechenden Werte aus Ihrer Azure SQL-Datenbank.

Für credentials können Sie den Benutzernamen und das Passwort der Azure SQL-Datenbank in dieser Datei speichern, aber es ist sicherer, die Werte leer zu lassen und sie in der Befehlszeile anzugeben, die die Verbindung erstellt.

$schema: http://azureml/sdk-2-0/Connection.json

type: azure_sql_db
name: <connection-name>

target: Server=tcp:<server>,<port>;Database=<database>;Trusted_Connection=False;Encrypt=True;Connection Timeout=30
credentials:
    type: sql_auth
    username: <username>
    password: <password>

Führen Sie zum Erstellen der Verbindung eine der folgenden CLI-Befehlszeilen aus, und geben Sie ihren YAML-Dateinamen für den <yaml-filename> Platzhalter an.

  • Führen Sie den folgenden Befehl aus, um den Benutzernamen und das Kennwort zu verwenden, der in der YAML-Datei gespeichert ist:

    az ml connection create --file <yaml-filename>.yaml
    
  • Um den Benutzernamen und das Kennwort als Teil der Befehlszeile anzugeben, führen Sie den folgenden Befehl aus und ersetzen Sie die Platzhalter <username> und <password> durch Ihre eigenen Angaben.

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

Erstellen einer Amazon S3-Datenverbindung

Sie können die Azure Machine Learning CLI, das Azure Machine Learning SDK für Python oder Machine Learning Studio verwenden, um eine Amazon S3-Datenverbindung zu erstellen.

Um eine Amazon S3-Datenverbindung zu erstellen, erstellen Sie zuerst eine YAML-Datei, die die Verbindung definiert, und führen Sie dann einen Azure CLI- oder Python SDK-Befehl oder ein Skript aus, das die YAML-Datei aufruft. Für Python SDK können Sie auch die Verbindungsinformationen direkt angeben, ohne eine YAML-Datei zu verwenden.

Um die Azure Machine Learning CLI zum Erstellen einer Amazon S3-Datenverbindung zu verwenden, erstellen Sie zuerst eine YAML-Datei, die die Verbindung definiert, und führen Sie dann einen Azure CLI-Befehl aus, der die YAML-Datei aufruft.

Erstellen Sie die folgende YAML-Datei, die die Amazon S3-Verbindung definiert. Geben Sie einen <connection-name> an und ersetzen Sie die Platzhalter <s3-bucket-name>, <access-key-id> und <secret-access-key> durch die Werte Ihres Amazon S3-Kontos. Speichern Sie die Datei mit einem Namen wie my_amazons3_connection.yaml.

$schema: http://azureml/sdk-2-0/Connection.json

type: s3
name: <connection-name>

target: <s3-bucket-name>
credentials:
    type: access_key
    access_key_id: <access-key-id>
    secret_access_key: <secret-access-key>

Führen Sie zum Erstellen der Verbindung den folgenden CLI-Befehl aus, und geben Sie ihren YAML-Dateinamen für den <yaml-filename> Platzhalter an.

az ml connection create --file <yaml-filename>.yaml

Erstellen externer Nichtdatenverbindungen

Sie können auch Nicht-Datenverbindungen von Azure Machine Learning zu externen Diensten erstellen, die Sie in Ihrem Code benutzen. In diesem Abschnitt wird gezeigt, wie Sie die folgenden Nichtdatenverbindungen erstellen:

  • Git
  • Python-Feed
  • Azure Container Registry (Registrierungsdienst für Container von Azure)
  • Generische Containerregistrierung
  • API-Schlüssel

Erstellen einer Git-Verbindung

Sie können eine Git-Verbindung mit Azure CLI, Python SDK oder Machine Learning Studio erstellen.

Um eine Git-Verbindung mit Azure CLI zu erstellen, definieren Sie die Verbindung mithilfe einer der folgenden YAML-Dateien. Benennen Sie die Datei wie git-connection.yml.

  • Um eine Verbindung mit einem persönlichen Zugriffstoken (Personal Access Token, PAT) herzustellen, stellen Sie einen <connection-name> bereit, und ersetzen Sie die Platzhalter <account>, <repo> und <PAT> durch die Werte für Ihr Git-Konto, -Repository und PAT.

    name: <connection-name>
    type: git
    target: https://github.com/<account>/<repo>
    credentials:
       type: pat
       pat: <PAT>
    
  • Um eine Verbindung zu einem öffentlichen Repository herzustellen, ohne Anmeldeinformationen zu verwenden, geben Sie <connection-name> ein und ersetzen Sie die Platzhalter <account> und <repo> durch Ihre Werte.

    name: <connection-name>
    type: git
    target: https://github.com/<account>/<repo>
    

Erstellen Sie die Azure Machine Learning-Verbindung, indem Sie den folgenden Befehl ausführen und ihren YAML-Dateinamen für den <yaml-filename> Platzhalter angeben.

az ml connection create --file <yaml-filename>.yaml

Python-Feed

Sie können eine Verbindung mit einem Python-Feed erstellen, indem Sie Azure CLI, Python SDK oder Machine Learning Studio verwenden.

Definieren Sie eine Python-Feedverbindung mithilfe einer der folgenden YAML-Dateien. Benennen Sie die Datei wie python-feed-connection.yml.

  • Um eine Verbindung mit einem PAT herzustellen, geben Sie einen <connection-name> ein und ersetzen Sie die Platzhalter <feed-url> und <PAT> durch die Werte für Ihren Feed.

    name: <connection-name>
    type: python_feed
    target: https://<feed-url>
    credentials:
       type: pat
       pat: <PAT>
    
  • Um eine Verbindung mit einem Benutzernamen und Kennwort herzustellen, geben Sie einen <connection-name> an und ersetzen Sie die Platzhalter <feed-url>, <username> und <password> durch die Werte für Ihren Feed.

    name: <connection-name>
    type: python_feed
    target: https://<feed-url>
    credentials:
       type: username_password
       username: <username>
       password: <password>
    
  • Um eine Verbindung mit einem öffentlichen Feed herzustellen, ohne Anmeldeinformationen zu verwenden, geben Sie einen <connection-name>Platzhalter ein, und ersetzen Sie den <feed-url> Platzhalter durch Ihre Python-Feed-URL.

    name: <connection-name>
    type: python_feed
    target: https://<feed-url>
    

Erstellen Sie die Azure Machine Learning-Verbindung, indem Sie den folgenden Befehl ausführen und ihren YAML-Dateinamen für den <yaml-filename> Platzhalter angeben.

az ml connection create --file <yaml-filename>.yaml

Azure Container Registry (Registrierungsdienst für Container von Azure)

Sie können eine Verbindung mit azure Container Registry erstellen, indem Sie Azure CLI, Python SDK oder Machine Learning Studio verwenden.

Verwenden Sie die folgende YAML-Datei, um eine Verbindung mit der Azure-Containerregistrierung mit Benutzername/Kennwortauthentifizierung zu definieren.

name: <connection-name>
type: container_registry
target: https://<container-registry-url>
credentials:
   type: username_password
   username: <username>
   password: <password>

Führen Sie zum Erstellen der Verbindung den folgenden Befehl aus:

az ml connection create --file connection.yaml

Generische Containerregistrierung

Die GenericContainerRegistry-Arbeitsbereichsverbindung gibt eine externe Registrierung an, z. B. Nexus oder Artifactory, für Image-Erstellungen. Umgebungsimages werden von der angegebenen Registrierung aus gepusht, und der vorherige Cache wird ignoriert. Sie können eine Verbindung mit einer generischen Containerregistrierung mit Azure CLI, Python SDK oder Machine Learning Studio erstellen.

Für Azure CLI und Python SDK definieren die folgenden YAML-Dateien eine generische Containerregistrierungsverbindung. Aktualisieren Sie die Beispielwerte mit Ihren eigenen Werten.

#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: myusername
  password: <password>
#hello_world_job.yml
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world"
environment: azureml:myenv@latest

Führen Sie den folgenden Befehl aus, um die Verbindung mit den vorherigen YAML-Dateien und Ihren Anmeldeinformationen zu erstellen. Aktualisieren Sie die Beispielwerte mit Ihren eigenen Werten.

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

Führen Sie den folgenden Befehl aus, um die Umgebung zu erstellen:

az ml environment create --name docker-image-plus-conda-example --version 1 --file myenv.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

Führen Sie den folgenden Befehl aus, um zu überprüfen, ob die Umgebung erfolgreich erstellt wurde.

az ml environment show --name docker-image-plus-conda-example --version 1 --resource-group my-resource-group --workspace-name my-workspace

API-Schlüssel

Erstellen Sie die folgende YAML-Datei, um eine Verbindung mit einem API-Schlüssel zu definieren. Aktualisieren Sie die Beispielwerte mit Ihren eigenen Werten.

name: my_api_key
type: api_key
api_base: "https://myapi.core.windows.net/mycontainer"
api_key: "aAbBcCdD"

Führen Sie zum Erstellen der Verbindung den folgenden Befehl aus:

az ml connection create --file connection.yaml

Um eine bessere Sicherheit zu gewährleisten, lassen Sie den api_key Wert der YAML-Datei aus und stellen Sie ihn in der Befehlszeile bereit:

az ml connection create --file connection.yml --set api_key="aAbBcCdD"