Esdeveniment
Crear aplicacions i agents d'IA
17 de març, 21 - 21 de març, 10
Uneix-te a la sèrie de trobades per crear solucions d'IA escalables basades en casos d'ús del món real amb altres desenvolupadors i experts.
Registreu-vos-hi araAquest navegador ja no s’admet.
Feu l’actualització al Microsoft Edge per aprofitar les característiques més recents, les actualitzacions de seguretat i l’assistència tècnica.
Use Durable Functions, una característica de Azure Functions, para escribir funciones con estado en un entorno sin servidor. Durable Functions administra el estado, los puntos de control y los reinicios en la aplicación.
Durable Functions admite varios proveedores de almacenamiento, también conocidos como back-end, para almacenar el estado de ejecución de la orquestación y de la entidad. Los nuevos proyectos están configurados para usar el proveedor de Azure Storage de manera predeterminada. En este inicio rápido, configurará una aplicación de Durable Functions para usar el proveedor de almacenamiento de Microsoft SQL Server (MSSQL).
Nota
El back-end de MSSQL se diseñó para maximizar la portabilidad y el control de las aplicaciones sobre los datos. Usa Microsoft SQL Server para conservar todos los datos del centro de tareas para que los usuarios obtengan las ventajas de una infraestructura moderna de sistema de administración de bases de datos de nivel empresarial (DBMS). Para obtener más información sobre cuándo usar el proveedor de almacenamiento MSSQL, vea la introducción a los proveedores de almacenamiento.
Actualmente no se admite la migración de datos del centro de tareas entre proveedores de almacenamiento. Las aplicaciones de funciones que tienen datos en tiempo de ejecución existentes comienzan con un centro de tareas nuevo y vacío después de cambiar al back-end de MSSQL. Del mismo modo, el contenido del centro de tareas que se crea mediante MSSQL no se puede conservar si cambia a otro proveedor de almacenamiento.
El back-end de MSSQL no es compatible actualmente con Durable Functions cuando se ejecuta en el plan de Consumo flexible.
En los pasos siguientes se supone que tiene una aplicación de Durable Functions existente y que está familiarizado con cómo operarla.
En concreto, en este inicio rápido se da por supuesto que ya tiene:
Si no cumple estos requisitos previos, se recomienda comenzar con uno de los siguientes inicios rápidos:
Nota
Si la aplicación usa Paquetes de extensiones, omita esta sección. Extension Bundles elimina la necesidad de administración manual de extensiones.
En primer lugar, instale la versión más reciente de la Microsoft.Azure.Functions.Worker.Extensions.DurableTask.SqlServer extensión del proveedor de almacenamiento MSSQL desde NuGet. Para .NET, agregue una referencia a la extensión en el archivo de .csproj y, a continuación, compile el proyecto. También puede usar el comando dotnet add package para agregar paquetes de extensión.
Puede instalar la extensión mediante el siguiente comando CLI de Azure Functions Core Tools:
func extensions install --package <package name depending on your worker model> --version <latest version>
Para obtener más información sobre cómo instalar extensiones de Azure Functions a través de la CLI de Core Tools, vea instalación de extensiones de func.
Nota
Si ya tiene una base de datos compatible con MSSQL, puede omitir esta sección y omitir la sección siguiente sobre cómo configurar una base de datos local basada en Docker.
Dado que el back-end de MSSQL está diseñado para la portabilidad, tiene varias opciones para configurar la base de datos de copia de seguridad. Por ejemplo, puede configurar una instancia de SQL Server local, usar una instancia totalmente administrada de Azure SQL Database, o usar cualquier otra opción de hospedaje compatible con SQL Server.
También puede realizar el desarrollo local y sin conexión mediante SQL Server Express en el equipo Windows local o usar una imagen de Docker de SQL Server que se ejecuta en un contenedor de Docker.
Este inicio rápido se centra en el uso de una imagen de Docker de SQL Server.
Para ejecutar estos pasos, necesita una instalación de Docker en el equipo local. Puede usar los siguientes comandos de PowerShell para configurar una base de datos local de SQL Server en Docker. Puede instalar PowerShell en Windows, macOS o Linux.
# primary parameters
$pw = "yourStrong(!)Password"
$edition = "Developer"
$port = 1433
$tag = "2019-latest"
$dbname = "DurableDB"
$collation = "Latin1_General_100_BIN2_UTF8"
# pull the image from the Microsoft container registry
docker pull mcr.microsoft.com/mssql/server:$tag
# run the image and provide some basic setup parameters
docker run --name mssql-server -e 'ACCEPT_EULA=Y' -e "MSSQL_SA_PASSWORD=$pw" -e "MSSQL_PID=$edition" -p ${port}:1433 -d mcr.microsoft.com/mssql/server:$tag
# wait a few seconds for the container to start...
# create the database with strict binary collation
docker exec -d mssql-server /opt/mssql-tools/bin/sqlcmd -S . -U sa -P "$pw" -Q "CREATE DATABASE [$dbname] COLLATE $collation"
Después de ejecutar estos comandos, debe tener un servidor SQL Server local en ejecución en Docker y escuchar en el puerto 1443. Si el puerto 1443 entra en conflicto con otro servicio, puede volver a ejecutar estos comandos después de cambiar la variable $port
a un valor diferente.
Si recibe este error al ejecutar el último comando:
Error response from daemon: OCI runtime exec failed: exec failed: unable to start container process: exec: "/opt/mssql-tools/bin/sqlcmd": stat /opt/mssql-tools/bin/sqlcmd: no such file or directory: unknown
Es probable que la carpeta /opt/mssql-tools/bin/sqlcmd
no exista. Abra Docker Desktop, seleccione el contenedor de Docker de SQL Server, seleccione Archivos y busque la carpeta mssql-tools. Esta carpeta puede tener un nombre diferente, como /opt/mssql-tools18/bin/sqlcmd
. Actualice la última línea de código en consecuencia y ejecútelo.
Nota
Para detener y eliminar un contenedor en ejecución, puede usar docker stop <containerName>
y docker rm <containerName>
respectivamente. Puede usar estos comandos para volver a crear el contenedor y detenerlo cuando termine este inicio rápido. Para obtener más ayuda, ejecute docker --help
.
Para validar la instalación de la base de datos, use este comando de Docker para consultar la nueva base de datos SQL:
docker exec -it mssql-server /opt/mssql-tools/bin/sqlcmd -S . -U sa -P "$pw" -Q "SELECT name FROM sys.databases"
Si la configuración de la base de datos se completó correctamente, el nombre de la base de datos (por ejemplo, DurableDB) aparece en la salida de la línea de comandos:
name
--------------------------------------------------------------
master
tempdb
model
msdb
DurableDB
El back-end de MSSQL necesita una cadena de conexión para acceder a la base de datos. La obtención de una cadena de conexión depende principalmente de su proveedor de servidor MSSQL específico. Para obtener información sobre cómo obtener una cadena de conexión, revise la documentación de su proveedor específico.
Si usa los comandos anteriores de Docker sin cambiar ningún parámetro, la cadena de conexión es:
Server=localhost,1433;Database=DurableDB;User Id=sa;Password=yourStrong(!)Password;
Después de obtener la cadena de conexión, agréguela a una variable en local.settings.json para usarla durante el desarrollo local.
Este es un ejemplo local.settings.json que asigna la cadena de conexión de instancia de SQL Server basada en Docker predeterminada a la variable SQLDB_Connection
:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"SQLDB_Connection": "Server=localhost,1433;Database=DurableDB;User Id=sa;Password=yourStrong(!)Password;",
"FUNCTIONS_WORKER_RUNTIME": "<dependent on your programming language>"
}
}
Nota
El valor de FUNCTIONS_WORKER_RUNTIME
depende del lenguaje de programación que use. Para obtener más información, vea la referencia de tiempo de ejecución.
Edite la sección proveedor de almacenamiento del archivo host.json para establecer type
en mssql
. También debe especificar el nombre de la variable de cadena de conexión, SQLDB_Connection
, en connectionStringName
. Establezca createDatabaseIfNotExists
en true
. Esta configuración crea una base de datos denominada DurableDB si aún no existe, con la intercalación Latin1_General_100_BIN2_UTF8
.
{
"version": "2.0",
"extensions": {
"durableTask": {
"storageProvider": {
"type": "mssql",
"connectionStringName": "SQLDB_Connection",
"createDatabaseIfNotExists": true
}
}
},
"logging": {
"logLevel": {
"DurableTask.SqlServer": "Warning",
"DurableTask.Core": "Warning"
}
}
}
Este ejemplo de código es un ejemplo de host.json relativamente básico. Más adelante, es posible que quiera agregar parámetros.
La aplicación ya está lista para el desarrollo local. Puede iniciar la aplicación de funciones para probarla. Una manera de iniciar la aplicación es ejecutar func host start
en la raíz de la aplicación y ejecutar una función básica de orquestador.
Mientras se ejecuta la aplicación de funciones, actualiza el estado en tiempo de ejecución en la base de datos SQL configurada. Puede probar que funciona según lo previsto mediante la interfaz de consulta SQL. Por ejemplo, en el contenedor de SQL Server local basado en Docker, puede ver el estado de las instancias de orquestación mediante el siguiente comando de Docker:
docker exec -it mssql-server /opt/mssql-tools/bin/sqlcmd -S . -d $dbname -U sa -P "$pw" -Q "SELECT TOP 5 InstanceID, RuntimeStatus, CreatedTime, CompletedTime FROM dt.Instances"
Después de ejecutar una orquestación, la consulta devuelve los resultados que se parecen a este ejemplo:
InstanceID RuntimeStatus CreatedTime CompletedTime
------------------------------------ -------------------- ----------------------------- ----------------------------
9fe1ea9d109341ff923621c0e58f215c Completed 2022-11-16 21:42:39.1787277 2022-11-16 21:42:42.3993899
Para ejecutar la aplicación en Azure, necesita una instancia de SQL Server accesible públicamente. Puede obtener uno mediante la creación de una base de datos de Azure SQL.
Nota
Si ya tiene una base de datos de Azure SQL u otra instancia de SQL Server accesible públicamente que desea usar, puede ir a la sección siguiente.
En Azure Portal, puede crear una base de datos de Azure SQL. Al configurar la base de datos, asegúrese de establecer el valor de Intercalación de base de datos (en Configuración adicional) en Latin1_General_100_BIN2_UTF8
.
Nota
Microsoft ofrece una cuenta de suscripción gratuita a Azure durante 12 meses si es la primera vez que explora Azure.
Para obtener la cadena de conexión de la base de datos de Azure SQL, vaya al panel de información general de la base de datos en Azure Portal. A continuación, en Configuración, seleccione Cadenas de conexión y obtenga la cadena de conexión ADO.NET. Asegúrese de proporcionar la contraseña en la plantilla proporcionada.
Este es un ejemplo de cómo obtener la cadena de conexión de Azure SQL en el portal:
En Azure Portal, la cadena de conexión tendrá la contraseña de la base de datos quitada: se reemplaza por {your_password}
. Reemplace ese marcador de posición por la contraseña que usó para crear la base de datos anteriormente en esta sección. Si olvidó la contraseña, puede restablecerla; para ello, vaya al panel de información general de la base de datos en Azure Portal. En la vista Essentials, seleccione el nombre del servidor. A continuación, seleccione Restablecer contraseña. Para obtener ejemplos, vea las capturas de pantalla siguientes.
A continuación, agregue la cadena de conexión de la base de datos como una configuración de aplicación. Para agregarlo en Azure Portal, vaya primero a la vista de la aplicación de Azure Functions. En Configuración, seleccione Nueva configuración de aplicación. Asigne SQLDB_Connection para asignar a una cadena de conexión accesible públicamente. Para obtener ejemplos, vea las capturas de pantalla siguientes.
Ahora puede implementar la aplicación de funciones en Azure y ejecutar las pruebas o la carga de trabajo en ella. Para validar que el back-end de MSSQL está configurado correctamente, puede consultar la base de datos para los datos del centro de tareas.
Por ejemplo, puede consultar las instancias de orquestación en el panel de información general de la base de datos SQL. Seleccione Editor de consultas, autentíquese y, a continuación, ejecute la consulta siguiente:
SELECT TOP 5 InstanceID, RuntimeStatus, CreatedTime, CompletedTime FROM dt.Instances
Después de ejecutar un orquestador simple, debería ver al menos un resultado, como se muestra en este ejemplo:
Esdeveniment
Crear aplicacions i agents d'IA
17 de març, 21 - 21 de març, 10
Uneix-te a la sèrie de trobades per crear solucions d'IA escalables basades en casos d'ús del món real amb altres desenvolupadors i experts.
Registreu-vos-hi araFormació
Mòdul
Averigüe por qué Azure SQL Database es una elección adecuada como base de datos relacional, y aprenda a crear la base de datos desde el portal y a conectarse con Azure Cloud Shell.
Certificació
Microsoft Certified: Azure Database Administrator Associate - Certifications
Administre una infraestructura de base de datos de SQL Server para bases de datos relacionales locales e híbridas en la nube mediante las ofertas de bases de datos relacionales PaaS de Microsoft.