Cómo ejecutar la imagen Docker de Aspose.CAD en Azure Function
Requisitos previos
- Docker debe estar instalado en su sistema. Para obtener información sobre cómo instalar Docker en Windows o Mac, consulte los enlaces en la sección “Véase también”.
- Visual Studio 2022.
- Se utiliza el SDK de NET 6 en el ejemplo.
- Postman
Azure Function
En este ejemplo, creas una función de conversión simple que convierte un archivo CAD y lo guarda como una imagen. La aplicación se puede construir en Docker y ejecutarlo en Azure Function.
Creando la Azure Function
Para crear el programa de Azure Function, siga los pasos a continuación:
- Una vez que Docker esté instalado, asegúrese de que utiliza contenedores de Linux (predeterminado). Si es necesario, seleccione la opción Cambiar a contenedores de Linux en el menú de escritorio de Docker.
- En Visual Studio, crea una Azure Function de NET 6.
- Información adicional.
- Instala la última versión de Aspose.CAD desde NuGet.
- Dado que la aplicación se ejecutará en Linux, es posible que necesite instalar fuentes adicionales. Puede preferir ttf-mscorefonts-installer.
- Cuando todas las dependencias necesarias estén añadidas, escriba un programa simple que cree una elipse y la guarde como una imagen:
public static class Function1
{
[FunctionName("convert")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
log.LogInformation("La función de activación HTTP de C# procesó una solicitud.");
try
{
using (var image = (CadImage)Image.Load(req.Body))
{
var ms = new MemoryStream();
image.Save(ms, new PngOptions());
ms.Seek(0, (System.IO.SeekOrigin)SeekOrigin.Begin);
return new FileContentResult(ms.ToArray(), "application/octet-stream")
{
FileDownloadName = "Export.png"
};
}
}
catch (Exception e)
{
return new OkObjectResult(e.Message);
}
}
}
Configurando un Dockerfile
El siguiente paso es crear y configurar el Dockerfile en la carpeta raíz del proyecto.
- Crea el Dockerfile y colócalo junto al archivo de solución de tu aplicación. Mantén este nombre de archivo sin extensión (el predeterminado).
- En el Dockerfile, especifica:
FROM mcr.microsoft.com/azure-functions/dotnet:4 AS base
WORKDIR /home/site/wwwroot
RUN apt-get update
RUN apt-get install -y apt-utils
RUN apt-get install -y libgdiplus
RUN apt-get install -y libc6-dev
RUN ln -s /usr/lib/libgdiplus.so/usr/lib/gdiplus.dll
EXPOSE 80
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY ["Aspose.CAD.Function/Aspose.CAD.Function.csproj", "Aspose.CAD.Function/"]
RUN dotnet restore "Aspose.CAD.Function/Aspose.CAD.Function.csproj"
COPY . .
WORKDIR "/src/Aspose.CAD.Function"
RUN dotnet build "Aspose.CAD.Function.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "Aspose.CAD.Function.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /home/site/wwwroot
COPY --from=publish /app/publish .
ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
AzureFunctionsJobHost__Logging__Console__IsEnabled=true
El anterior es un Dockerfile simple, que contiene las siguientes instrucciones:
- La imagen del SDK que se va a utilizar. Aquí está la imagen de Net 6. Docker la descargará cuando se ejecute la construcción. La versión del SDK se especifica como una etiqueta.
- Después, es posible que necesite instalar fuentes porque la imagen del SDK contiene muy pocas fuentes. Además, puede usar fuentes locales copiadas en la imagen de docker.
- El directorio de trabajo, que se especifica en la siguiente línea.
- El comando para copiar todo al contenedor, publicar la aplicación y especificar el punto de entrada.
Docker Hub
- Iniciar sesión en Docker Hub
- Crear un repositorio público
Construyendo y ejecutando la aplicación en Docker
Ahora la aplicación se puede construir y ejecutar en Docker. Abre tu símbolo del sistema favorito, cambia el directorio a la carpeta con la aplicación (carpeta donde se encuentra el archivo de solución y el Dockerfile) y ejecuta el siguiente comando:
//ejemplo
docker build -t <nombre de usuario>/<nombre del repositorio> .
docker build -t usuario/asposefunction .
La primera vez que ejecutes este comando, puede tardar más porque Docker necesita descargar las imágenes necesarias. Después de que se complete el comando anterior, ejecuta el siguiente comando para subir la imagen a Docker Hub:
//ejemplo
docker push <nombre de usuario>/<nombre del repositorio>:tagname
docker push usuario/asposefunction:latest
Azure
- Inicia sesión en Azure.
- Elige servicios de Azure.
- Elige Function App y crea una función.
- Repite la configuración básica como en la imagen a continuación.
- Haz clic en ‘Revisar + crear’ -> Crear.
- Espera a que la implementación finalice.
- Haz clic en el botón ‘Ir a recurso’.
- Detén la función aspose-cad-docker-example.
- Ve al menú del centro de implementación y realiza las configuraciones apropiadas.
- Guarda la configuración
- Copia la URL de Webhook de la configuración del centro de implementación.
- Ve a Docker Hub, selecciona tu repositorio y selecciona webhooks.
- Pega la ‘URL de Webhook’ de Azure en la URL de webhook de Docker Hub y establece el nombre.
- Haz clic en el botón de crear.
- Regresa a la función de resumen de Azure y inicia el contenedor.
Ejemplo de ejecución
- Configuraciones de Postman.
- Selecciona cualquier archivo DXF, DWG, DGN, DWF, DWFX, IFC, STL, DWT, IGES, PLT, CF2, OBJ, HPGL, IGS, PCL, FBX, PDF, SVG.
- Haz clic en el botón enviar.
Más ejemplos
Para más muestras de cómo puedes usar Aspose.CAD en Docker, consulta los ejemplos.
Véase también
- Instalar Docker Desktop en Windows
- Instalar Docker Desktop en Mac
- Visual Studio 2022, SDK NET 6
- Opción Cambiar a contenedores de Linux
- Información adicional sobre .NET Core SDK