Cómo ejecutar la imagen de Docker de Aspose.CAD en la función AWS Lambda
Prerrequisitos
- 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 “Ver También”.
- Visual Studio 2022.
- AWS Toolkit para Visual Studio 2022.
- Se utiliza .NET 6 SDK en el ejemplo.
- Postman
Función AWS Lambda
Lambda es un servicio de computación que le permite ejecutar código sin aprovisionar o administrar servidores. Lambda ejecuta su código en una infraestructura de computación de alta disponibilidad y realiza toda la administración de los recursos computacionales, incluyendo el mantenimiento del servidor y del sistema operativo, aprovisionamiento de capacidad y escalado automático, y registro. Con Lambda, puede ejecutar código para prácticamente cualquier tipo de aplicación o servicio de backend.
Creando la función AWS Lambda
Para crear el programa de la Función AWS Lambda, siga los pasos a continuación:
- Cree el Proyecto de AWS Lambda.
- Seleccione .NET 6 (Imagen de Contenedor) y haga clic en el botón ‘Finalizar’.
- Abra AWS Explorer en Visual Studio (Ver->AWS Explorer).
- Agregue el perfil de credenciales de AWS en AWS Explorer.
- Ingrese el ID de clave de acceso y la clave de acceso secreta, puede obtener estas claves en las credenciales de seguridad o contactar al administrador y obtener un archivo csv para autorización.
- Instale las últimas bibliotecas de NuGet.
- Ejemplo de código para convertir una imagen CAD a un archivo PDF.
public APIGatewayHttpApiV2ProxyResponse FunctionHandler(APIGatewayHttpApiV2ProxyRequest stream, ILambdaContext context) { try { var parser = HttpMultipartParser.MultipartFormDataParser.Parse(new MemoryStream(Convert.FromBase64String(stream.Body))); var file = parser.Files.First(); Stream fileStream = file.Data; using (var img = Aspose.CAD.Image.Load(fileStream)) { var ms = new MemoryStream(); img.Save(ms, new PdfOptions()); ms.Seek(0, (System.IO.SeekOrigin)SeekOrigin.Begin); return new APIGatewayHttpApiV2ProxyResponse { StatusCode = (int)HttpStatusCode.OK, Body = Convert.ToBase64String(ms.ToArray()), IsBase64Encoded = true, Headers = new Dictionary<string, string> { {"Content-Type", "application/pdf" }, {"Content-Disposition", "attachment;filename=filename.pdf" } } }; } } catch (Exception e) { return new APIGatewayHttpApiV2ProxyResponse { StatusCode = (int)HttpStatusCode.OK, Body = e.Message, Headers = new Dictionary<string, string> { { "Content-Type", "text/html" } } }; } }
- Edite el DockerFile como en la sección Configuración de un Dockerfile.
- Inicie Docker Desktop.
- Publique en AWS Lambda.
- Edite la configuración de carga.
- Haga clic en el botón ‘Subir’.
- Vaya a AWS y seleccione Lambda.
- Seleccione su nueva función y cree la URL de la función.
- Seleccione el tipo de autenticación
- AWS_IAM - Solo los usuarios y roles IAM autenticados pueden realizar solicitudes a la URL de su función.
- NONE - Lambda no realizará autenticación IAM en las solicitudes a la URL de su función. El punto final de la URL será público a menos que implemente su propia lógica de autorización en su función.
Configuración de un Dockerfile
El siguiente paso es editar la configuración del Dockerfile en el proyecto.
- En el Dockerfile, especifique:
FROM public.ecr.aws/lambda/dotnet:6
WORKDIR /var/task
COPY "bin/Release/lambda-publish" .
RUN yum install -y amazon-linux-extras
RUN amazon-linux-extras install epel -y
RUN yum install -y libgdiplus
CMD ["AWSLambda::AWSLambda.Function::FunctionHandler"]
Lo anterior es un Dockerfile simple, que contiene las siguientes instrucciones:
- La imagen del SDK que se 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, puede necesitar instalar fuentes porque la imagen del SDK contiene muy pocas fuentes. Además, puede usar fuentes locales copiadas en la imagen 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.
Ejemplo de ejecución
- Configuración de Postman.
- Seleccione cualquier archivo DXF, DWG, DGN, DWF, DWFX, IFC, STL, DWT, IGES, PLT, CF2, OBJ, HPGL, IGS, PCL, FBX, PDF, SVG.
- Haga clic en el botón enviar.
Más Ejemplos
Para más muestras de cómo puede utilizar Aspose.CAD en Docker, consulte los ejemplos.