Se connecter à Azure SQL Edge et l’interroger

Important

Azure SQL Edge ne prend plus en charge la plateforme ARM64.

Dans Azure SQL Edge, après avoir déployé un conteneur, vous pouvez vous connecter au Moteur de base de données à partir de l’un des emplacements suivants :

  • À l'intérieur du conteneur
  • À partir d'un autre conteneur Docker exécuté sur le même hôte
  • À partir de l’ordinateur hôte
  • À partir de n'importe quel autre ordinateur client du réseau

Outils permettant de se connecter à Azure SQL Edge

Vous pouvez vous connecter à une instance Azure SQL Edge à partir de l’un de ces outils courants :

  • sqlcmd : les outils clients sqlcmd sont déjà inclus dans l’image conteneur d’Azure SQL Edge. Si vous joignez un conteneur en cours d’exécution avec un interpréteur de commandes Bash interactif, vous pouvez exécuter les outils localement. Les outils clients SQL ne sont pas disponibles sur la plateforme ARM64.
  • SQL Server Management Studio
  • Azure Data Studio
  • Visual Studio Code

Pour vous connecter à un Moteur de base de données Azure SQL Edge à partir d’une machine réseau, vous avez besoin des éléments suivants :

  • Adresse IP ou nom réseau de l’ordinateur hôte : il s’agit de l’ordinateur hôte où le conteneur Azure SQL Edge est en cours d’exécution.

  • Mappage de port hôte de conteneur Azure SQL Edge : il s’agit du mappage du port de conteneur Docker à un port sur l’hôte. Dans le conteneur, Azure SQL Edge est toujours mappé au port 1433. Vous pouvez modifier cette valeur si vous le souhaitez. Pour modifier le numéro de port, mettez à jour les Options de création de conteneur pour le module Azure SQL Edge dans Azure IoT Edge. Dans l’exemple suivant, le port 1433 sur le conteneur est mappé au port 1600 sur l’hôte.

    {
        "PortBindings": {
          "1433/tcp": [
            {
              "HostPort": "1600"
            }
          ]
        }
    }
    
  • Mot de passe AS de l’instance Azure SQL Edge : Il s’agit de la valeur spécifiée pour la variable d’environnement SA_PASSWORD lors du déploiement d’Azure SQL Edge.

Connecter au Moteur de base de données à partir du conteneur

Les outils en ligne de commande SQL Server sont inclus dans l'image de conteneur d'Azure SQL Edge. Si vous joignez une invite de commandes interactive au conteneur, vous pouvez exécuter les outils localement. Les outils clients SQL ne sont pas disponibles sur la plateforme ARM64.

  1. Utilisez la commande docker exec -it pour démarrer un interpréteur de commandes bash interactif dans votre conteneur en cours d’exécution. Dans l’exemple suivant, e69e056c702d est l’ID de conteneur.

    docker exec -it e69e056c702d /bin/bash
    

    Conseil

    Vous n’avez pas toujours besoin de spécifier l’ID de conteneur entier. Vous ne devez spécifier que suffisamment de caractères pour l’identifier de manière unique. Ainsi, dans cet exemple, il peut suffire d'utiliser e6 ou e69 plutôt que l’ID complet.

  2. Lorsque vous êtes à l’intérieur du conteneur, connectez-vous localement à sqlcmd. sqlcmd n’est pas dans le chemin par défaut, vous devez spécifier le chemin complet.

    /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P '<YourPassword>'
    
  3. Lorsque vous avez terminé avec sqlcmd, tapez exit.

  4. Lorsque vous avez terminé avec l’invite de commandes interactive, saisissez exit. Le conteneur continue de s’exécuter une fois que vous avez quitté l’interpréteur de commandes bash interactif.

Se connecter à Azure SQL Edge à partir d'un autre conteneur du même hôte

Comme deux conteneurs exécutés sur le même hôte se trouvent sur le même réseau Docker, ceux-ci sont facilement accessibles à l'aide du nom du conteneur et de l'adresse de port du service. Par exemple, si vous vous connectez à l'instance d’Azure SQL Edge à partir d'un autre module python (conteneur) du même hôte, vous pouvez utiliser une chaîne de connexion semblable à la suivante. (Cet exemple suppose qu’Azure SQL Edge est configuré pour écouter sur le port par défaut.)

import pyodbc
server = 'MySQLEdgeContainer' # Replace this with the actual name of your SQL Edge Docker container
username = 'sa' # SQL Server username
password = 'MyStrongestP@ssword' # Replace this with the actual SA password from your deployment
database = 'MyEdgeDatabase' # Replace this with the actual database name from your deployment. If you do not have a database created, you can use Master database.
db_connection_string = "Driver={ODBC Driver 17 for SQL Server};Server=" + server + ";Database=" + database + ";UID=" + username + ";PWD=" + password + ";"
conn = pyodbc.connect(db_connection_string, autocommit=True)

Se connecter à Azure SQL Edge depuis un autre ordinateur du réseau

Vous souhaiterez peut-être vous connecter à l’instance d’Azure SQL Edge à partir d’une autre machine sur le réseau. Pour ce faire, utilisez l’adresse IP de l’hôte Docker et le port hôte auquel le conteneur Azure SQL Edge est mappé. Par exemple, si l’adresse IP de l’hôte Docker est 192.168.2.121, et que le conteneur Azure SQL Edge est mappé au port hôte 1600, l’adresse du serveur pour l’instance d’Azure SQL Edge serait 192.168.2.121,1600. Le script Python mis à jour sera :

import pyodbc
server = '192.168.2.121,1600' # Replace this with the actual name or IP address of your SQL Edge Docker container
username = 'sa' # SQL Server username
password = 'MyStrongestP@ssword' # Replace this with the actual SA password from your deployment
database = 'MyEdgeDatabase' # Replace this with the actual database name from your deployment. If you do not have a database created, you can use Master database.
db_connection_string = "Driver={ODBC Driver 17 for SQL Server};Server=" + server + ";Database=" + database + ";UID=" + username + ";PWD=" + password + ";"
conn = pyodbc.connect(db_connection_string, autocommit=True)

Pour vous connecter à une instance d’Azure SQL Edge à l'aide de SQL Server Management Studio sur un ordinateur Windows, consultez SQL Server Management Studio.

Pour vous connecter à une instance d’Azure SQL Edge à l’aide de Visual Studio Code sur une machine Windows, macOS ou Linux, consultez Visual Studio Code.

Pour vous connecter à une instance d’Azure SQL Edge à l’aide d’Azure Data Studio sur une machine Windows, macOS ou Linux, consultez Azure Data Studio.

Étapes suivantes