Comment exécuter et déployer IronPDF for .NET sur AWS Lambda

This article was translated from English: Does it need improvement?
Translated
View the article in English
Amazon Web Services V1 related to Comment exécuter et déployer IronPDF for .NET sur AWS Lambda

1. Créer AWS Lambda avec un modèle de conteneur (.NET 5)

Veuillez vous référer à la première partie de ce document officiel d'AWS : Prise en charge de .NET 5 AWS Lambda avec des images de conteneur.

2. Ajouter des dépendances de paquet

Ces dépendances sont nécessaires pour Chrome dans cet environnement AWS.

Veuillez modifier le fichier Docker selon ces instructions :

AWS Lambda avec .NET 5

AWS Lambda avec .NET 7

AWS Lambda avec .NET 8

3. ajouter le package NuGet IronPDF (Linux)

Installer IronPdf.Linux

  1. Dans l'explorateur de solutions, cliquez avec le bouton droit de la souris sur Références, Gérer les packages NuGet.
  2. Sélectionnez Parcourir et recherchez IronPdf.Linux.
  3. Sélectionnez le paquet et installez-le.

4 Modifier le code de FunctionHandler

Cet exemple créera un fichier PDF à partir d'une page web https://ironpdf.com/ et l'enregistrera dans /tmp. Pour visualiser ce PDF, vous devez le télécharger vers un autre service tel que S3.

Il est nécessaire de configurer le dossier temporaire lors de l'utilisation d'IronPDF sur AWS Lambda. Pour ce faire, veuillez utiliser les propriétés TempFolderPath et 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());
}
Public Function FunctionHandler(ByVal input As String, ByVal context As ILambdaContext) As Casing
	Try
		context.Logger.LogLine($"START FunctionHandler RequestId: {context.AwsRequestId} Input: {input}")

		Dim 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")
		Dim Renderer = New IronPdf.ChromePdfRenderer()

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

		Dim guid As System.Guid = System.Guid.NewGuid()
		Dim 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 e As Exception
		context.Logger.LogLine($"[ERROR] FunctionHandler : {e.Message}")
	End Try

	Return New Casing(input?.ToLower(), input?.ToUpper())
End Function
$vbLabelText   $csharpLabel

5. Augmenter la mémoire et le délai d'attente

IronPDF nécessite plus de temps et de mémoire que la valeur par défaut de Lambda. Vous pouvez le configurer dans aws-lambda-tools-defaults.json. Veuillez adapter ce texte à votre fonction. Dans cet exemple, nous le fixerons à 512 (Mo) et 330 (secondes).

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

Vous pouvez également mettre à jour cette configuration à l'aide de la console Lambda. Consultez l'article Configuration des fonctions AWS Lambda pour plus d'informations.

6. publier

Veuillez suivre les instructions de la dernière partie du document '.NET 5 AWS Lambda Support with Container Images' pour publier et tester votre fonction Lambda.

7. essayez-le!

Vous pouvez activer la fonction Lambda en utilisant la console Lambda ou via Visual Studio en utilisant la boîte à outils AWS pour Visual Studio.

Questions Fréquemment Posées

Comment créer un PDF à partir d'une URL en utilisant une fonction .NET AWS Lambda ?

Pour créer un PDF à partir d'une URL dans une fonction .NET AWS Lambda, utilisez la méthode ChromePdfRenderer.RenderUrlAsPdf d'IronPDF. Assurez-vous que le dossier temporaire est configuré en utilisant les propriétés TempFolderPath et CustomDeploymentDirectory.

Quelles étapes devrais-je suivre pour configurer IronPDF sur AWS Lambda ?

Configurez IronPDF sur AWS Lambda en définissant les chemins de dossiers temporaires avec TempFolderPath et CustomDeploymentDirectory, en désactivant le GPU avec ChromeGpuModes.Disabled, et en activant la configuration automatique des dépendances Linux et Docker avec LinuxAndDockerDependenciesAutoConfig réglé sur true.

Pourquoi est-il important d'ajuster les paramètres de mémoire et de délai d'attente pour AWS Lambda ?

Ajuster les paramètres de mémoire et de délai d'expiration pour AWS Lambda est crucial car IronPDF nécessite plus de ressources que les paramètres par défaut. Cela peut être configuré dans aws-lambda-tools-defaults.json ou via la console AWS Lambda.

Comment m'assurer que les dépendances de Chrome sont correctement installées pour AWS Lambda ?

Assurez-vous que les dépendances de Chrome sont correctement installées en modifiant le Dockerfile selon les instructions spécifiques à votre version .NET, comme indiqué dans l'article. Cela inclut l'installation des paquets Linux nécessaires pour Chrome dans l'environnement AWS.

Puis-je utiliser Visual Studio pour activer et tester ma fonction AWS Lambda ?

Oui, vous pouvez utiliser Visual Studio pour activer et tester votre fonction AWS Lambda en utilisant l'AWS Toolkit pour Visual Studio, qui permet un déploiement et un test sans couture directement depuis l'IDE.

Quelle est l'importance d'utiliser un modèle de conteneur pour .NET 5 sur AWS Lambda ?

Utiliser un modèle de conteneur pour .NET 5 sur AWS Lambda est important car il facilite le déploiement des applications avec leurs dépendances, comme IronPDF, assurant la cohérence entre les environnements.

Comment puis-je gérer les exceptions dans ma fonction AWS Lambda en utilisant IronPDF ?

Gérez les exceptions dans votre fonction AWS Lambda en encapsulant vos opérations IronPDF dans un bloc try-catch, en enregistrant les erreurs à l'aide de context.Logger.LogLine pour le débogage et le dépannage.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite
Prêt à commencer?
Nuget Téléchargements 16,685,821 | Version : 2025.12 vient de sortir