Cómo ejecutar e implementar IronPDF .NET en AWS Lambda

This article was translated from English: Does it need improvement?
Translated
View the article in English
Amazon Web Services V1 related to Cómo ejecutar e implementar IronPDF .NET en AWS Lambda

1. Crear AWS Lambda con una plantilla de contenedor (.NET 5)

Por favor, consulte la primera parte de este documento oficial de AWS: .NET 5 AWS Lambda Support with Container Images.

2. Añadir dependencias de paquetes

Estas dependencias son necesarias para Chrome en este entorno de AWS.

Por favor, modifique el archivo Docker de acuerdo con estas instrucciones:

AWS Lambda con .NET 5

AWS Lambda con .NET 7

AWS Lambda con .NET 8

3. Añadir el paquete IronPDF (Linux) NuGet

Instalar IronPdf.Linux

  1. En el Explorador de soluciones, haga clic con el botón derecho en Referencias, Administrar paquetes NuGet.
  2. Seleccione Explorar y busque IronPdf.Linux.

4. Modificar el código de FunctionHandler

Este ejemplo creará un archivo PDF desde una página webhttps://ironpdf.com/ y guárdelo en /tmp. Para ver este PDF, debes subirlo a otro servicio como S3.

Es necesario configurar la carpeta temporal cuando se utiliza IronPDF en AWS Lambda. Para ello, utilice las propiedades TempFolderPath y CustomDeploymentDirectory.

public Casing FunctionHandler(string input, ILambdaContext context)
{
    try
    {
        context.Logger.LogLine($"START FunctionHandler RequestId: {context.AwsRequestId} Input: {input}");

        var awsTmpPath = @"/tmp/"; // AWS temporary storage location

        // [Optional] Enable logging for debugging
        // Uncomment these lines if you encounter issues
        // IronPdf.Logging.Logger.EnableDebugging = true;
        // IronPdf.Logging.Logger.LogFilePath = awsTmpPath;
        // IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All;

        // Set your IronPDF license key
        IronPdf.License.LicenseKey = "YOUR_LICENSE_KEY";

        // Disable GPU for Chrome rendering in headless environments
        IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;

        // Configure IronPDF to use the AWS temporary directory
        IronPdf.Installation.TempFolderPath = awsTmpPath;
        IronPdf.Installation.CustomDeploymentDirectory = awsTmpPath;

        // Automatically configure Linux and Docker dependencies
        IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;

        context.Logger.LogLine($"Creating IronPdf.ChromePdfRenderer");
        var Renderer = new IronPdf.ChromePdfRenderer();

        context.Logger.LogLine($"Rendering PDF");
        using var pdfDoc = Renderer.RenderUrlAsPdf("https://ironpdf.com/");

        var guid = Guid.NewGuid();
        var fileName = $"/tmp/{input}_{guid}.pdf"; // Save file to /tmp

        context.Logger.LogLine($"Saving PDF with name: {fileName}");
        pdfDoc.SaveAs(fileName);

        // Place for future code to upload the PDF file to a service like AWS S3.

        context.Logger.LogLine($"COMPLETE!");
    }
    catch (Exception e)
    {
        context.Logger.LogLine($"[ERROR] FunctionHandler : {e.Message}");
    }

    return new Casing(input?.ToLower(), input?.ToUpper());
}
public Casing FunctionHandler(string input, ILambdaContext context)
{
    try
    {
        context.Logger.LogLine($"START FunctionHandler RequestId: {context.AwsRequestId} Input: {input}");

        var awsTmpPath = @"/tmp/"; // AWS temporary storage location

        // [Optional] Enable logging for debugging
        // Uncomment these lines if you encounter issues
        // IronPdf.Logging.Logger.EnableDebugging = true;
        // IronPdf.Logging.Logger.LogFilePath = awsTmpPath;
        // IronPdf.Logging.Logger.LoggingMode = IronPdf.Logging.Logger.LoggingModes.All;

        // Set your IronPDF license key
        IronPdf.License.LicenseKey = "YOUR_LICENSE_KEY";

        // Disable GPU for Chrome rendering in headless environments
        IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Disabled;

        // Configure IronPDF to use the AWS temporary directory
        IronPdf.Installation.TempFolderPath = awsTmpPath;
        IronPdf.Installation.CustomDeploymentDirectory = awsTmpPath;

        // Automatically configure Linux and Docker dependencies
        IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;

        context.Logger.LogLine($"Creating IronPdf.ChromePdfRenderer");
        var Renderer = new IronPdf.ChromePdfRenderer();

        context.Logger.LogLine($"Rendering PDF");
        using var pdfDoc = Renderer.RenderUrlAsPdf("https://ironpdf.com/");

        var guid = Guid.NewGuid();
        var fileName = $"/tmp/{input}_{guid}.pdf"; // Save file to /tmp

        context.Logger.LogLine($"Saving PDF with name: {fileName}");
        pdfDoc.SaveAs(fileName);

        // Place for future code to upload the PDF file to a service like AWS S3.

        context.Logger.LogLine($"COMPLETE!");
    }
    catch (Exception e)
    {
        context.Logger.LogLine($"[ERROR] FunctionHandler : {e.Message}");
    }

    return new Casing(input?.ToLower(), input?.ToUpper());
}
$vbLabelText   $csharpLabel

5. Aumentar la memoria y el tiempo de espera

IronPDF requiere más tiempo y memoria que el valor predeterminado de Lambda. Puedes configurarlo en aws-lambda-tools-defaults.json. Por favor, ajústelo a su función. En este ejemplo, lo fijaremos en 512 (MB) y 330 (segundos).

{
    "function-memory-size": 512,
    "function-timeout": 330
}

También puede actualizar esta configuración mediante la consola de Lambda. Vaya al artículo Configuración de las funciones de AWS Lambda para obtener más información.

6. Publicar

Por favor, siga las instrucciones de la última parte del documento '.NET 5 AWS Lambda Support with Container Images' para publicar y probar su función Lambda.

7. ¡Pruébalo!

Puede activar la función Lambda utilizando la consola Lambda o a través de Visual Studio utilizando el AWS Toolkit for Visual Studio.

Preguntas Frecuentes

¿Cómo creo un PDF desde una URL usando una función .NET AWS Lambda?

Para crear un PDF desde una URL en una función .NET AWS Lambda, use el método ChromePdfRenderer.RenderUrlAsPdf de IronPDF. Asegúrese de que la carpeta temporal esté configurada usando las propiedades TempFolderPath y CustomDeploymentDirectory.

¿Qué pasos debo seguir para configurar IronPDF en AWS Lambda?

Configure IronPDF en AWS Lambda estableciendo las rutas de carpetas temporales usando TempFolderPath y CustomDeploymentDirectory, deshabilitando la GPU con ChromeGpuModes.Disabled y habilitando la configuración automática de dependencias de Linux y Docker con LinuxAndDockerDependenciesAutoConfig establecido en true.

¿Por qué es importante ajustar la memoria y las configuraciones de tiempo de espera para AWS Lambda?

Ajustar la memoria y las configuraciones de tiempo de espera para AWS Lambda es crucial porque IronPDF requiere más recursos que las configuraciones predeterminadas. Esto se puede configurar en aws-lambda-tools-defaults.json o a través de la consola de AWS Lambda.

¿Cómo aseguro que las dependencias de Chrome estén correctamente instaladas para AWS Lambda?

Asegúrese de que las dependencias de Chrome estén correctamente instaladas modificando el Dockerfile de acuerdo con las instrucciones específicas para su versión de .NET, tal como se proporciona en el artículo. Esto incluye la instalación de los paquetes de Linux necesarios para Chrome en el entorno AWS.

¿Puedo usar Visual Studio para activar y probar mi función AWS Lambda?

Sí, puede usar Visual Studio para activar y probar su función AWS Lambda utilizando AWS Toolkit para Visual Studio, que permite una implementación y prueba sin problemas directamente desde el IDE.

¿Cuál es la importancia de utilizar una plantilla de contenedor para .NET 5 en AWS Lambda?

Usar una plantilla de contenedor para .NET 5 en AWS Lambda es importante porque facilita el despliegue de aplicaciones con sus dependencias, como IronPDF, asegurando la consistencia en los entornos.

¿Cómo puedo manejar excepciones en mi función AWS Lambda usando IronPDF?

Maneje excepciones en su función AWS Lambda envolviendo sus operaciones de IronPDF en un bloque try-catch, registrando errores utilizando context.Logger.LogLine para depuración y resolución de problemas.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más
¿Listo para empezar?
Nuget Descargas 17,803,474 | Versión: 2026.3 recién lanzado
Still Scrolling Icon

¿Aún desplazándote?

¿Quieres una prueba rápida? PM > Install-Package IronPdf
ejecutar una muestra Mira cómo tu HTML se convierte en PDF.