IronPDF for Java'i AWS Lambda'da Nasıl Calistirilir
Onemli: Gereken Ayarlar
- Zip Deployment desteklenmiyor cunku IronPDF, çalısma zamanında ikili dosyaların calistirilmasini gerektirir.
PackageType'iImageyapmalisiniz cunku IronPDF for Java, sadece Docker kurulumunu destekler.AmazonLinux2Docker imajını kullanmalısınız.- Ashagidaki IronPdfEngineWorkingDirectory'yi ayarlamaniz gerekir:
import com.ironsoftware.ironpdf.Settings;
import java.nio.file.Paths;
// Setting the working directory for IronPDF engine
Settings.setIronPdfEngineWorkingDirectory(Paths.get("/tmp/"));
import com.ironsoftware.ironpdf.Settings;
import java.nio.file.Paths;
// Setting the working directory for IronPDF engine
Settings.setIronPdfEngineWorkingDirectory(Paths.get("/tmp/"));
Not: Bu gereklidir cunku AWS'in calisma ortami icin izin verdigi tek yol budur.
/tmpboyutunu artırın. Varsayılan değer 512 MB'dır. Lutfen en az 1024 MB olarak ayarlayin.- Projenize
ironpdf-engine-linux-x64bağımlılığını ekleyin:
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf-engine-linux-x64</artifactId>
<version>2022.xx.x</version>
</dependency>
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf-engine-linux-x64</artifactId>
<version>2022.xx.x</version>
</dependency>
- Lambada zaman asimi çok yavas başlatma nedeniyle 330 saniye olarak ayarlayin.
- Lambda bellek boyutunu en az 1024 MB olarak ayarlayin.
AWS Toolkit for IntelliJ IDEA ile Hızlı Başlangıç (AWS SAM)
-
Araclari Kurun:
- IntelliJ IDEA - IntelliJ IDEA Indir
- AWS Toolkit - JetBrains için AWS Toolkit Ayarlaması
- SAM CLI - SAM CLI'yi Sunucusuz Uygulamalar için Kurun
- Docker - Docker Topluluk Sürümünü Kur
Yerel Test İçin İsteğe Bağlı:
- Java 8 - Java SE Geliştirme Seti 8 İndir
- Maven - Maven Kurulum Kılavuzları
- Proje Oluşturma: (
File->New->Project...)

- Yapılandırma:
- Paket Türü:
Image - Calisma Zamani:
java8veyajava11 - SAM Şablonu:
Maven
- Paket Türü:

- Aşağıdaki bağımlılıkları
pom.xml'ınıza ekleyin:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>2.0.3</version>
</dependency>
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf-engine-linux-x64</artifactId>
<version>2022.11.1</version>
</dependency>
<dependency>
<groupId>io.perfmark</groupId>
<artifactId>perfmark-api</artifactId>
<version>0.26.0</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-okhttp</artifactId>
<version>1.50.2</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-netty-shaded</artifactId>
<version>1.50.2</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>2.0.3</version>
</dependency>
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf-engine-linux-x64</artifactId>
<version>2022.11.1</version>
</dependency>
<dependency>
<groupId>io.perfmark</groupId>
<artifactId>perfmark-api</artifactId>
<version>0.26.0</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-okhttp</artifactId>
<version>1.50.2</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-netty-shaded</artifactId>
<version>1.50.2</version>
</dependency>
App.java'dakihandleRequestişlev kodunu değiştirin:
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent;
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyResponseEvent;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.Settings;
import java.nio.file.Paths;
import java.util.HashMap;
import java.util.Map;
// AWS Lambda function to generate a PDF from a URL using IronPDF.
public class App {
public APIGatewayProxyResponseEvent handleRequest(final APIGatewayProxyRequestEvent input, final Context context) {
APIGatewayProxyResponseEvent response = new APIGatewayProxyResponseEvent();
// Enable debugging for IronPDF (optional)
Settings.setDebug(true);
// Set the working directory for the IronPDF engine (required)
Settings.setIronPdfEngineWorkingDirectory(Paths.get("/tmp/"));
try {
context.getLogger().log("RENDER PDF");
// Render the PDF from a URL
PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://www.google.com");
context.getLogger().log("RENDER PDF SUCCESS");
// Save the generated PDF to a file
pdf.saveAs("/tmp/my-first-pdf.pdf");
// Set HTTP response headers
Map<String, String> headers = new HashMap<>();
headers.put("Content-Type", "application/json");
headers.put("X-Custom-Header", "application/json");
// Return the successful response
return response
.withHeaders(headers)
.withStatusCode(200)
.withBody("ENJOY IRON-PDF!");
} catch (Exception e) {
// Return the error response
return response
.withBody("{" + e.getMessage() + "}")
.withStatusCode(500);
}
}
}
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent;
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyResponseEvent;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.Settings;
import java.nio.file.Paths;
import java.util.HashMap;
import java.util.Map;
// AWS Lambda function to generate a PDF from a URL using IronPDF.
public class App {
public APIGatewayProxyResponseEvent handleRequest(final APIGatewayProxyRequestEvent input, final Context context) {
APIGatewayProxyResponseEvent response = new APIGatewayProxyResponseEvent();
// Enable debugging for IronPDF (optional)
Settings.setDebug(true);
// Set the working directory for the IronPDF engine (required)
Settings.setIronPdfEngineWorkingDirectory(Paths.get("/tmp/"));
try {
context.getLogger().log("RENDER PDF");
// Render the PDF from a URL
PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://www.google.com");
context.getLogger().log("RENDER PDF SUCCESS");
// Save the generated PDF to a file
pdf.saveAs("/tmp/my-first-pdf.pdf");
// Set HTTP response headers
Map<String, String> headers = new HashMap<>();
headers.put("Content-Type", "application/json");
headers.put("X-Custom-Header", "application/json");
// Return the successful response
return response
.withHeaders(headers)
.withStatusCode(200)
.withBody("ENJOY IRON-PDF!");
} catch (Exception e) {
// Return the error response
return response
.withBody("{" + e.getMessage() + "}")
.withStatusCode(500);
}
}
}
- Lambda ayarlarını
template.yamliçine ayarlayın:
Globals:
Function:
Timeout: 400
MemorySize: 2048
EphemeralStorage:
Size: 1024
# Do not modify other configurations
Globals:
Function:
Timeout: 400
MemorySize: 2048
EphemeralStorage:
Size: 1024
# Do not modify other configurations
- Dockerfile'ı güncelleyin:
- Not: Java 8 icin,
java8.al2imajlarini kullanin cunku bunlarAmazonLinux2'i kullanirken,java8eskiAmazonLinux'i kullanir.
- Not: Java 8 icin,
FROM public.ecr.aws/sam/build-java8.al2:latest as build-image
WORKDIR "/task"
COPY src/ src/
COPY pom.xml ./
RUN mvn -q clean install
RUN mvn dependency:copy-dependencies -DincludeScope=compile
FROM public.ecr.aws/lambda/java:8.al2
RUN yum update -y
RUN yum install -y pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 \
libXdamage.x86_64 libXext.x86_64 libXi.x86_64 libXtst.x86_64 \
cups-libs.x86_64 libXScrnSaver.x86_64 libXrandr.x86_64 GConf2.x86_64 \
alsa-lib.x86_64 atk.x86_64 gtk3.x86_64 ipa-gothic-fonts \
xorg-x11-fonts-100dpi xorg-x11-fonts-75dpi xorg-x11-utils \
xorg-x11-fonts-cyrillic xorg-x11-fonts-Type1 xorg-x11-fonts-misc \
glibc-devel.x86_64 at-spi2-atk.x86_64 mesa-libgbm.x86_64 libxkbcommon \
amazon-linux-extras
RUN amazon-linux-extras install epel -y
RUN yum install -y libgdiplus
RUN chmod 777 /tmp/
COPY --from=build-image /task/target/classes /var/task/
COPY --from=build-image /task/target/dependency /var/task/lib
# Command can be overridden by providing a different command in the template directly.
CMD ["helloworld.App::handleRequest"]
- Projeyi derleyin:
sam build -u
sam build -u
- Projeyi dağıtın:
sam deploy --guided
sam deploy --guided
- AWS Lambda'da IronPDF'in Tadını Çıkarın! Artık fonksiyonunuz şu adreste canlı: AWS Lambda Konsoluna Erişin
Sıkça Sorulan Sorular
Java'da AWS Lambda üzerinde PDF oluşturma ve düzenleme nasıl yapılır?
Gerekli ayarları uygulamak için 'AmazonLinux2' Docker imajını kullanarak ortamı ayarlayarak AWS Lambda içinde IronPDF for Java'yı kullanabilirsiniz, /tmp dizini boyutunu artırarak ve Lambda zaman aşımını ayarlayarak.
Neden AWS Lambda'da PDF işleme için Zip Dağıtımı kullanamıyorum?
Zip Dağıtım AWS Lambda'da IronPDF için desteklenmiyor çünkü çalışma zamanında ikili yürütme gerektirmektedir. Docker dağıtımı için 'PackageType' 'Resim' olarak ayarlanmalıdır.
AWS Lambda'da IronPDF'nin çalışma dizin ayarları nelerdir?
IronPDF motorunun çalışma dizinini '/tmp/' olarak ayarlayın ve PDF işlemenin verimli bir şekilde gerçekleştirilmesini sağlamak için dizin boyutunu en az 1024 MB'a çıkarın.
AWS Lambda'da Maven projesinde PDF oluşturma için hangi bağımlılıklar eklenmelidir?
Maven projenizin pom.xml dosyasına 'ironpdf-engine-linux-x64' bağımlılığını ve PDF oluşturma ve düzenlemeyi etkinleştirmek için diğer gerekli kütüphaneleri ekleyin.
Java'da AWS Lambda üzerinde bir URL'den PDF nasıl işlenir?
PdfDocument.renderUrlAsPdf yöntemini kullanarak bir URL'yi PDF dokümanına dönüştürün ve pdf.saveAs yöntemi ile kaydedin.
PDF işlemesi için önerilen Lambda zaman aşımı ve bellek ayarları nelerdir?
Lambda zaman aşımını 330 saniyeye ayarlayın ve IronPDF'nin AWS Lambda'daki işlem gereksinimlerini karşılamak için en az 1024 MB bellek ayırın.
Java'da AWS Lambda üzerinde PDF işlemleri için hangi çalışma ortamları kullanılabilir?
IronPDF, AWS Lambda üzerinde PDF işleme görevlerini yürütmek için 'java8' ve 'java11' çalışma ortamlarını destekler.
Java'da PDF işlemesi için IntelliJ IDEA için AWS Toolkit ile hızlıca nasıl başlanır?
IntelliJ IDEA, AWS Toolkit, SAM CLI ve Docker'ı yükleyin. İsteğe bağlı olarak, yerel test için Java 8 ve Maven ayarlayın, ardından projenizi oluşturmak ve yapılandırmak için hızlı başlangıç kılavuzunu takip edin.
Java PDF işleme projesini AWS Lambda'ya SAM CLI kullanarak nasıl dağıtabilirim?
Öncelikle projenizi sam build -u komutu ile oluşturun, ardından sam deploy --guided komutunu kullanarak AWS Lambda'da PDF işlemenizi etkili bir şekilde ayarlayın.

