Como executar e implantar o IronPDF .NET no AWS Lambda

This article was translated from English: Does it need improvement?
Translated
View the article in English
Amazon Web Services V1 related to Como executar e implantar o IronPDF .NET no AWS Lambda

1. Criar uma função AWS Lambda com um modelo de contêiner (.NET 5)

Consulte a primeira parte deste documento oficial da AWS: Suporte do AWS Lambda for .NET 5 com imagens de contêiner .

2. Adicionar dependências de pacotes

Essas dependências são necessárias para o Chrome neste ambiente AWS.

Modifique o arquivo Docker de acordo com estas instruções:

AWS Lambda com .NET 5

AWS Lambda com .NET 7

AWS Lambda com .NET 8

3. Adicione o pacote NuGet IronPDF (Linux).

Instale IronPdf.Linux

  1. No Solution Explorer, clique com o botão direito do mouse em Referências e selecione Gerenciar Pacotes NuGet.
  2. Selecione Procurar e pesquise IronPdf.Linux.
  3. Selecione o pacote e instale.

4. Modifique o código do FunctionHandler.

Este exemplo criará um arquivo PDF a partir de uma página da web.https://ironpdf.com/ e salve-o em /tmp. Para visualizar este PDF, você precisa carregá-lo em outro serviço, como o S3.

É necessário configurar a pasta temporária ao usar o IronPDF no AWS Lambda. Utilize as propriedades TempFolderPath e CustomDeploymentDirectory para fazer isso.

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. Aumentar a memória e o tempo limite

O IronPDF requer mais tempo e memória do que o valor padrão do Lambda. Você pode configurá-lo em aws-lambda-tools-defaults.json. Ajuste isso de acordo com a sua função. Neste exemplo, vamos definir para 512 (MB) e 330 (segundos).

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

Você também pode atualizar essa configuração usando o console do Lambda. Acesse o artigo Configurando funções do AWS Lambda para obter mais informações.

6. Publicar

Siga as instruções na última parte do documento ' Suporte do AWS Lambda for .NET 5 com imagens de contêiner ' para publicar e testar sua função Lambda.

7. Experimente!

Você pode ativar a função Lambda usando o console do Lambda ou via Visual Studio, utilizando o AWS Toolkit para Visual Studio .

Perguntas frequentes

Como faço para criar um PDF a partir de uma URL usando uma função .NET AWS Lambda?

Para criar um PDF a partir de uma URL em uma função .NET AWS Lambda, use o método ` ChromePdfRenderer.RenderUrlAsPdf do IronPDF. Certifique-se de que a pasta temporária esteja configurada usando as propriedades TempFolderPath e CustomDeploymentDirectory .

Quais são os passos que devo seguir para configurar o IronPDF no AWS Lambda?

Configure o IronPDF no AWS Lambda definindo os caminhos das pastas temporárias usando TempFolderPath e CustomDeploymentDirectory , desativando a GPU com ChromeGpuModes.Disabled e ativando a configuração automática das dependências do Linux e do Docker com LinuxAndDockerDependenciesAutoConfig definido como `true`.

Por que é importante ajustar as configurações de memória e tempo limite para o AWS Lambda?

Ajustar as configurações de memória e tempo limite do AWS Lambda é crucial, pois o IronPDF requer mais recursos do que as configurações padrão. Isso pode ser configurado no arquivo aws-lambda-tools-defaults.json ou por meio do console do AWS Lambda.

Como posso garantir que as dependências do Chrome estejam instaladas corretamente para o AWS Lambda?

Garanta que as dependências do Chrome estejam instaladas corretamente, modificando o Dockerfile de acordo com as instruções específicas para sua versão do .NET, conforme fornecido no artigo. Isso inclui a instalação dos pacotes Linux necessários para o Chrome no ambiente AWS.

Posso usar o Visual Studio para ativar e testar minha função AWS Lambda?

Sim, você pode usar o Visual Studio para ativar e testar sua função AWS Lambda usando o AWS Toolkit para Visual Studio, que permite a implantação e os testes de forma integrada diretamente do ambiente de desenvolvimento integrado (IDE).

Qual a importância de usar um modelo de contêiner for .NET 5 no AWS Lambda?

Utilizar um modelo de contêiner for .NET 5 no AWS Lambda é importante porque facilita a implantação de aplicativos com suas dependências, como o IronPDF, garantindo consistência entre os ambientes.

Como posso lidar com exceções na minha função AWS Lambda usando o IronPDF?

Lide com exceções em sua função AWS Lambda envolvendo suas operações do IronPDF em um bloco try-catch e registrando erros usando context.Logger.LogLine para depuração e solução de problemas.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais
Pronto para começar?
Nuget Downloads 18,318,263 | Versão: 2026.4 acaba de ser lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package IronPdf
executar um exemplo Veja seu HTML se transformar em um PDF.