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).
Instalar IronPdf.Linux
- No Solution Explorer, clique com o botão direito do mouse em Referências e selecione Gerenciar Pacotes NuGet.
- Selecione Browse e busque por
IronPdf.Linux. - Selecione o pacote e instale.
4. Modifique o código do FunctionHandler.
Este exemplo criará um arquivo PDF a partir de uma página web https://ironpdf.com/ e o salvará 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 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 Function5. 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 para .NET 5 no AWS Lambda?
Utilizar um modelo de contêiner para .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.
How can I ensure my Docker dependencies are correctly configured for IronPDF?
IronPDF offers an automatic configuration for Linux and Docker dependencies using IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig. Enabling this option helps manage dependencies efficiently in a dockerized AWS Lambda environment.
What are the steps for building and deploying a function with IronPDF on AWS?
To build and deploy a function with IronPDF on AWS, use `dotnet lambda deploy-function` to create a Docker image, push it to Amazon ECR, and deploy your function. Follow AWS’s deployment guide for a complete workflow from building to testing.
Can I use AWS S3 with IronPDF for storing generated PDFs?
Yes, after generating PDFs using IronPDF on AWS Lambda, you can upload them to AWS S3 for storage. This typically involves using AWS SDK or other tools to transfer files from Lambda’s temporary storage to S3.

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 bem estruturados e visualmente atraentes.