Conectar e consultar o SQL do Azure no Edge
Importante
O Azure SQL Edge será desativado em 30 de setembro de 2025. Para obter mais informações e opções de migração, veja o Aviso de aposentadoria.
Observação
O SQL do Azure no Edge encerrou o suporte à plataforma ARM64.
No SQL do Azure no Edge, depois de implantar um contêiner, você pode se conectar ao Mecanismo de Banco de Dados de qualquer um dos seguintes locais:
- Dentro do contêiner
- De outro contêiner do Docker em execução no mesmo host
- No computador host
- De qualquer outro computador cliente na rede
Ferramentas para se conectar ao SQL do Azure no Edge
Você pode se conectar a uma instância da instância do SQL do Azure no Edge de qualquer uma dessas ferramentas comuns:
- sqlcmd: as ferramentas do cliente sqlcmd já estão incluídas na imagem de contêiner do SQL do Azure no Edge. Se você anexar a um contêiner em execução com um shell Bash interativo, poderá executar as ferramentas localmente. As ferramentas do cliente SQL não estão disponíveis na plataforma ARM64.
- SQL Server Management Studio
- Azure Data Studio
- Visual Studio Code
Para se conectar a um Mecanismo de Banco de Dados do SQL do Azure no Edge de um computador de rede, você precisa do seguinte:
Endereço IP ou nome de rede do computador host: Esse é o computador host em que o contêiner do SQL do Azure no Edge está em execução.
Mapeamento de porta de host de contêiner do SQL do Azure no Edge: Esse é o mapeamento da porta de contêiner do Docker para uma porta no host. Dentro do contêiner, o SQL do Azure no Edge é sempre mapeado para a porta 1433. Você pode alterar isso se desejar. Para alterar o número da porta, atualize as Opções de criação do contêiner para o módulo do SQL do Azure no Edge no Azure IoT Edge. No exemplo a seguir, a porta 1433 no contêiner é mapeada para a porta 1600 no host.
{ "PortBindings": { "1433/tcp": [ { "HostPort": "1600" } ] } }
Senha SA para a instância do SQL do Azure no Edge: Esse é o valor especificado para a variável de ambiente
MSSQL_SA_PASSWORD
durante a implantação do SQL do Azure no Edge.
Conectar-se ao Mecanismo de Banco de Dados de dentro do contêiner
As ferramentas de linha de comando do SQL Server são incluídas na imagem de contêiner do SQL do Azure no Edge. Se você anexar ao contêiner com um prompt de comando interativo, poderá executar as ferramentas localmente. As ferramentas do cliente SQL não estão disponíveis na plataforma ARM64.
Use o comando
docker exec -it
para iniciar um shell bash interativo dentro do contêiner em execução. No exemplo a seguir,e69e056c702d
é a ID do contêiner.docker exec -it e69e056c702d /bin/bash
Dica
Você nem sempre precisa especificar toda a ID do contêiner. Você só precisa especificar caracteres suficientes para identificá-la exclusivamente. Portanto, neste exemplo, talvez seja suficiente usar
e6
oue69
, em vez da ID completa.Quando você estiver dentro do contêiner, conecte-se localmente com a sqlcmd. A sqlcmd não está no caminho por padrão, portanto, será necessário especificar o caminho completo.
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P '<YourPassword>'
Quando você tiver concluído a sqlcmd, digite
exit
.Quando terminar com o prompt de comando interativo, digite
exit
. O contêiner continuará a ser executado depois que você sair do shell bash interativo.
Conectar-se ao SQL do Azure no Edge de outro contêiner no mesmo host
Como dois contêineres em execução no mesmo host estão na mesma rede do Docker, você pode acessadá-los facilmente usando o nome do contêiner e o endereço da porta para o serviço. Por exemplo, se você estiver se conectando à instância do SQL do Azure no Edge de outro módulo Python (contêiner) no mesmo host, poderá usar uma cadeia de conexão semelhante à seguinte. O exemplo a seguir pressupõe que o SQL do Azure no Edge esteja configurado para detectá-lo na porta padrão.
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)
Conectar-se ao SQL do Azure no Edge de outro computador da rede
Aconselha-se a se conectar à instância do SQL do Azure no Edge usando outro computador na rede. Para fazer isso, use o endereço IP do host do Docker e a porta do host para o qual o contêiner do SQL do Azure no Edge está mapeado. Por exemplo, se o endereço de IP do host do Docker for 192.168.2.121
, e o contêiner do SQL do Azure no Edge for mapeado para a porta do host 1600, o endereço do servidor da instância do SQL do Azure no Edge será 192.168.2.121,1600
. O script do Python atualizado é:
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)
Para se conectar a uma instância do SQL do Azure no Edge usando SQL Server Management Studio em execução em um computador Windows, veja SQL Server Management Studio.
Para se conectar a uma instância do SQL do Azure no Edge usando o Visual Studio Code em um computador Windows, macOS ou Linux, consulte Visual Studio Code.
Para se conectar a uma instância do SQL do Azure no Edge usando o Azure Data Studio em um computador Windows, macOS ou Linux, consulte Azure Data Studio.