Bu kılavuz, Docker ve AWS SAM kullanılarak AWS Lambda üzerinde IronPDF for Java'yı devreye almayı adım adım anlatır. IronPDF, doğal bir Chrome tabanlı render motoruna bağımlı olduğundan, standart ZIP ile dağıtılan Lambda fonksiyonları üzerinde çalışamaz - Docker, tek desteklenen dağıtım modelidir. Aşağıdaki adımlar, gerekli araçların yüklenmesinden, pom.xml bağımlılıklarının yapılandırılmasından ve Lambda işleyicisinin yazılmasından, konteyner görüntüsünün oluşturulmasına ve SAM CLI ile dağıtılmasına kadar her şeyi kapsamaktadır.

Hızlı Başlangıç: IronPDF for Java'nın AWS Lambda Üzerinde Dağıtımı

Bugün IronPDF ile projenizde ücretsiz bir deneme ile başlayın.

İlk Adım:
green arrow pointer

İçindekiler

Ön Gereksinimler Nedir? {#önkoşullar}

Başlamadan önce, geliştirme makinesinde aşağıdaki araçların kurulu olduğunu doğrulayın. Her araç, inşa-et ve dağıt boru hattında özel bir rol oynamaktadır.

AWS'ye dağıtmadan önce yerel çağrı testi için, ayrıca şunları yükleyin:

Tüm araçlar yerine oturduğunda, IntelliJ IDEA'yı açın ve File → New → Project yoluyla yeni bir proje oluşturun. Proje sihirbazında, AWS Lambda şablonunu seçin ve aşağıdaki seçenekleri tercih edin:

  • Paket Türü: Image
  • Çalışma zamanı: java8 veya java11
  • SAM Şablonu: Maven

IntelliJ IDEA'da Image paket türü seçili olarak AWS Lambda projesi oluşturma

Java8 çalışma zamanı ve Maven SAM şablonunu gösteren AWS Lambda yapılandırma ekranı

Neden Docker kullanmalıyız, zip dağıtımı yerine? {#why-docker}

AWS Lambda, iki dağıtım paketi türünü destekler: Zip arşivleri ve kapsayıcı imajlar. Zip dağıtımı, hafif Java fonksiyonları için iyi çalışır çünkü çalışma zamanı ortamı tamamen AWS tarafından yönetilir. Ancak IronPDF, çalışma zamanında çıkarılması ve yürütülmesi gereken yerel bir ikili dosya (Chrome tabanlı bir PDF işleme motoru) ile birlikte gelir. ZIP dağıtımları için Lambda yürütme ortamı, dosya sistemi yazma işlemlerini /tmp ile sınırlar ve ZIP paket katmanı sınırlamaları, büyük yerel ikili dosyaların çıkarılmasını engeller.

Kapsayıcı imaj dağıtımı bu kısıtlamaları ortadan kaldırır. Kendi Docker imajınızı tanımladığınızda, taban işletim sistemi, yüklenen sistem paketleri ve dizin düzeni üzerinde kontrol sahibi olursunuz. IronPDF'nin görüntüleme motoru başlangıçta /tmp'ye çıkarılabilir, gerekli sistem kütüphaneleri görüntüye önceden yüklenebilir ve konteyner boyut sınırı (10 GB) motorun tamamını barındıracak kadar büyüktür.

Pratik sonuç basittir: PackageType: Image'yi template.yaml'ye ayarlayın ve Docker uyumlu bir temel görüntü kullanarak derleyin. SAM CLI gerisini ele alır.

Maven Bağımlılıklarını Nasıl Yapılandırırsınız? {#Maven-dependencies}

pom.xml dosyası, standart Lambda SDK'nın ötesinde üç kategoride ek bağımlılığa ihtiyaç duyar: IronPDF Java kütüphanesi, IronPDF Linux x64 görüntüleme motoru ve IronPDF motoru tarafından dahili olarak kullanılan gRPC aktarım protokolü.

pom.xml dosyasını açın ve <dependencies> içine aşağıdaki bağımlılıkları ekleyin:

//:path=pom.xml
<dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf</artifactId>
    <version>2024.9.1</version>
</dependency>
<dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf-engine-linux-x64</artifactId>
    <version>2024.9.1</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>2.0.3</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>
//:path=pom.xml
<dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf</artifactId>
    <version>2024.9.1</version>
</dependency>
<dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf-engine-linux-x64</artifactId>
    <version>2024.9.1</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>2.0.3</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>
XML

ironpdf-engine-linux-x64 artefaktı, 64 bit Linux için önceden derlenmiş Chromium tabanlı görüntüleme motorunu bir araya getirir. Bu, IronPDF'nin Lambda konteyneri içinde HTML'i PDF'ye dönüştürmesini sağlar. Olmadan, işleme çağrıları eksik ikili hata ile başarısız olur. IronPDF, yerel bir gRPC kanalı üzerinden görüntüleme motoruyla iletişim kurduğundan, gRPC bağımlılıkları (grpc-okhttp, grpc-netty-shaded, perfmark-api) gereklidir. slf4j-simple bağımlılığı, IronPDF'nin dahili günlüklerinin CloudWatch'ta görünür olması için minimal bir günlük kaydı uygulaması sağlar.

ironpdf ve ironpdf-engine-linux-x64 sürüm numaralarını her zaman uyumlu hale getirin — sürümlerin karıştırılması, başlangıç hatasına neden olur. Maven Central'da IronPDF for Java sayfasını en son sürüm dizesi için kontrol edin.

Lambda İşleyicisini Nasıl Yazarsınız? {#lambda-handler}

Lambda işleyici sınıfı bir APIGatewayProxyRequestEvent alır, bir PDF oluşturur ve bir APIGatewayProxyResponseEvent döndürür. İlk görüntüleme işleminden önce iki IronPDF yapılandırma çağrısı görünmelidir: çalışma dizinini /tmp olarak ayarlama ve isteğe bağlı olarak hata ayıklama günlüğünü etkinleştirme.

App.java içeriğini aşağıdakiyle değiştirin:

//:path=App.java
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;

public class App {
    public APIGatewayProxyResponseEvent handleRequest(
            final APIGatewayProxyRequestEvent input,
            final Context context) {

        APIGatewayProxyResponseEvent response = new APIGatewayProxyResponseEvent();

        // IronPDF must write its engine binaries and temporary files to /tmp.
        // This is the only writable path available in the Lambda execution environment.
        Settings.setIronPdfEngineWorkingDirectory(Paths.get("/tmp/"));

        // Enable debug logging to CloudWatch during initial testing.
        Settings.setDebug(true);

        try {
            context.getLogger().log("Starting PDF render");

            // Render a PDF from a live URL. Replace with your own HTML or URL as needed.
            PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://www.google.com");

            context.getLogger().log("PDF render complete");

            // Save the rendered PDF to /tmp. Files in /tmp persist for the lifetime
            // of the Lambda execution environment (warm instance).
            pdf.saveAs("/tmp/output.pdf");

            Map<String, String> headers = new HashMap<>();
            headers.put("Content-Type", "application/json");

            return response
                    .withStatusCode(200)
                    .withHeaders(headers)
                    .withBody("PDF generated successfully.");

        } catch (Exception e) {
            context.getLogger().log("PDF render failed: " + e.getMessage());
            return response
                    .withStatusCode(500)
                    .withBody("{\"error\": \"" + e.getMessage() + "\"}");
        }
    }
}
//:path=App.java
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;

public class App {
    public APIGatewayProxyResponseEvent handleRequest(
            final APIGatewayProxyRequestEvent input,
            final Context context) {

        APIGatewayProxyResponseEvent response = new APIGatewayProxyResponseEvent();

        // IronPDF must write its engine binaries and temporary files to /tmp.
        // This is the only writable path available in the Lambda execution environment.
        Settings.setIronPdfEngineWorkingDirectory(Paths.get("/tmp/"));

        // Enable debug logging to CloudWatch during initial testing.
        Settings.setDebug(true);

        try {
            context.getLogger().log("Starting PDF render");

            // Render a PDF from a live URL. Replace with your own HTML or URL as needed.
            PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://www.google.com");

            context.getLogger().log("PDF render complete");

            // Save the rendered PDF to /tmp. Files in /tmp persist for the lifetime
            // of the Lambda execution environment (warm instance).
            pdf.saveAs("/tmp/output.pdf");

            Map<String, String> headers = new HashMap<>();
            headers.put("Content-Type", "application/json");

            return response
                    .withStatusCode(200)
                    .withHeaders(headers)
                    .withBody("PDF generated successfully.");

        } catch (Exception e) {
            context.getLogger().log("PDF render failed: " + e.getMessage());
            return response
                    .withStatusCode(500)
                    .withBody("{\"error\": \"" + e.getMessage() + "\"}");
        }
    }
}
JAVA

Settings.setIronPdfEngineWorkingDirectory(Paths.get("/tmp/")) çağrısı zorunludur. AWS Lambda'nın yürütme ortamı işlev kodunu salt okunur bir dizine monte eder. IronPDF motoru, başlangıçta destek dosyalarını çıkarmalı ve soketler oluşturmalıdır — yazma erişimi gerektiren etkinlikler. /tmp dizini, Lambda'nın dosya yazma işlemlerine izin verdiği tek konumdur; bu nedenle, herhangi bir işleme başlamadan önce IronPDF'nin bu konuma yönlendirilmesi gerekir. Bu ayar atlandığında, motor başlayamaz ve her render çağrısı bir istisna fırlatır.

pdf.saveAs("/tmp/output.pdf") çağrısı, işlenmiş dosyayı geçici /tmp dosya sisteminde depolar. Lambda işlevinin PDF'yi ikili yanıt olarak döndürmesi veya S3'e yüklemesi gerekiyorsa, diske yazmak yerine pdf.getBinaryData() ile baytları alın. Büyük ölçekli iş yükleri için, Amazon S3'ye yükleme ve ön imzalı bir URL döndürme önerilen modeldir.

SAM Şablonunu Nasıl Yapılandırırsınız? {#sam-template}

template.yaml dosyası, Lambda işlevinin kaynak tahsisini kontrol eder. IronPDF'nin başarılı bir şekilde çalışıp çalışmayacağını doğrudan etkileyen üç ayar vardır: Timeout, MemorySize ve EphemeralStorage.Size.

Globals bölümünü template.yaml şu şekilde güncelleyin:

//:path=template.yaml
Globals:
  Function:
    Timeout: 400
    MemorySize: 2048
    EphemeralStorage:
      Size: 1024
//:path=template.yaml
Globals:
  Function:
    Timeout: 400
    MemorySize: 2048
    EphemeralStorage:
      Size: 1024
YAML

Zaman Aşımı 400 saniyeye ayarlanmış. Soğuk başlatmada, IronPDF render motorunu /tmp konumuna çıkarmalı ve yerel bir Chromium işlemi başlatmalıdır. Bu çıkarma, ilk çağrıda 30-60 saniye sürebilir. 330 saniyeden daha kısa bir zaman aşımı, soğuk başlangıç çağrılarının görev zaman aşımı hatasıyla başarısız olmasına neden olur. Sıcak çağrılar çok daha hızlıdır — genellikle basit HTML'den PDF'ye dönüşümler için 5 saniyeden kısadır.

Hafıza Boyutu 2048 MB olarak ayarlanmış. Chromium işleyici hafıza yoğundur. AWS Lambda için IronPDF'nin minimum uygun hafızası 1024 MB'tır, ancak 2048 MB karmaşık sayfalar için bellek yetersizliği hatalarının riskini azaltır ve fark edilir şekilde daha hızlı dönüş süreleri sağlar çünkü Lambda, bellekle orantılı olarak CPU tahsisatını da ölçeklendirir.

EphemeralStorage.Size 1024 MB olarak ayarlanır. Varsayılan Lambda /tmp tahsisi 512 MB'dir. IronPDF, görüntüleme motoru ikili dosyalarını, yazı tipi önbelleğini ve geçici görüntüleme dosyalarını /tmp konumuna yazar. Bu varlıklar, soğuk başlangıçta 512 MB'yi aşabilir ve bu da motor çıkarımın başarısız olmasına neden olur. Ephemeral depolamayı en az 1024 MB olarak ayarlamak bu hata modunu önler.

Dockerfile'ı Nasıl Oluşturursunuz? {#dockerfile}

Dockerfile bu dağıtımın kalbidir. Çok aşamalı bir yapım gerçekleştirir: ilk aşama, Maven derleme görüntüsü kullanarak Java projesini derler; ikinci aşama, Amazon Linux 2 tabanlı nihai Lambda çalışma zamanı görüntüsünü oluşturur, IronPDF'nin Chromium motorunun gerektirdiği sistem paketlerini kurar ve derlenmiş eserleri kopyalar.

Projenin Dockerfile dosyasını açın ve içeriğini aşağıdakilerle değiştirin:

//:path=Dockerfile
# Stage 1: Build the Maven project
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

# Stage 2: Create the Lambda runtime image
FROM public.ecr.aws/lambda/java:8.al2

# Update the package index and install system libraries required by Chromium.
# These packages provide font rendering, graphics, audio, GTK3, and input
# method support — all needed by the headless browser inside IronPDF.
RUN yum update -y && \
    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 && \
    amazon-linux-extras install epel -y && \
    yum install -y libgdiplus

# Ensure /tmp is writable by the Lambda execution user.
RUN chmod 777 /tmp/

# Copy the compiled classes and dependencies from the build stage.
COPY --from=build-image /task/target/classes /var/task/
COPY --from=build-image /task/target/dependency /var/task/lib

# Entry point: package.ClassName::methodName
CMD ["helloworld.App::handleRequest"]

Her iki aşamanın temel görüntüleri, düz java8 yerine java8.al2 etiketini kullanır. .al2 son eki, IronPDF için gerekli olan Amazon Linux 2'yi belirtir. Eski java8 görüntüsü, artık güncelleme almayan yum depolarını kullanan ve IronPDF'nin bağlı olduğu birkaç paketi içermeyen orijinal Amazon Linux 1 üzerinde çalışır. IronPDF'yi Java 8 üzerinde kullanırken daima .al2 resimlerini kullanın.

yum install bloğu, Chromium'un sayfaları görüntülemek için ihtiyaç duyduğu X11, GTK3, Pango ve yazı tipi ile ilgili kütüphaneleri yükler. Bu paketlerden herhangi birinin ihmal edilmesi, eksik PDF çıktısı oluşturabilir veya render motorunun eksik paylaşılan kütüphane hatasıyla çökmesine neden olabilir. libgdiplus paketi, bazı IronPDF çizim işlemleri tarafından kullanılan GDI+ uyumluluğu için gereklidir.

CMD talimatını, helloworld.App'dan farklıysa, gerçek paket ve sınıf adınızla uyumlu olacak şekilde güncelleyin.

Lambda Fonksiyonunu Nasıl Kurar ve Dağıtırsınız? {#build-deploy}

Dockerfile, template.yaml, pom.xml ve App.java yapılandırıldıktan sonra, proje kök dizininden aşağıdaki iki SAM CLI komutunu çalıştırın.

Adım 1 — Konteyner imajını oluşturun:

//:path=build.sh
sam build -u
//:path=build.sh
sam build -u
SHELL

-u bayrağı, SAM'a Docker'ı kullanması talimatını verir ("konteyner kullan" modu). SAM, Maven projesini derleyen ve nihai Lambda görüntüsünü üreten çok aşamalı Dockerfile'ı yürütür. Docker ilk etapta temel görüntüleri çekerken bu adımın birkaç dakika sürebileceğinden onaylayın.

Adım 2 — AWS'ye Dağıt:

//:path=deploy.sh
sam deploy --guided
//:path=deploy.sh
sam deploy --guided
SHELL

--guided bayrağı, yığın adını, AWS bölgesini, artefaktlar için S3 kovasını ve dağıtımdan önce değişiklik kümelerini onaylayıp onaylamayacağını soran etkileşimli bir istem başlatır. Soruları yanıtlayın; SAM, konteyner görüntüsünü Amazon ECR'ye aktaracak ve template.yaml içinde tanımlanan Lambda işlevini, API Gateway'i ve IAM rolünü oluşturacaktır.

Dağıtım tamamlandıktan sonra, SAM CLI API uç nokta URL'sini çıktı olarak verir. Dağıtılan işlevi görmek, test çağrılarını çalıştırmak ve IronPDF hata ayıklama çıktısı için CloudWatch günlüklerini incelemek için AWS Lambda Konsolunu açın.

İlk çağrıda (soğuk başlatma), Lambda yürütme ortamı başlatılırken ve IronPDF, /tmp'ye işleme motorunu çıkarırken 60–120 saniyelik bir yanıt süresi beklenebilir. Aynı sıcak örnek üzerindeki sonraki çağrılar birkaç saniye içinde dönecektir. Üretim iş yükleri için soğuk başlatma gecikmesi bir endişe ise, Lambda Provisioned Concurrency kullanarak örnekleri sıcak tutmayı düşünün.

Docker'ın geliştirme makinesinde çalışıyor olması koşuluyla, sam local invoke komutunu bir test olayı yüküyle çalıştırarak, dağıtımdan önce işlevi yerel olarak da test edebilirsiniz.

Bir Sonraki Adımlar Nelerdir? {#next-steps}

Lambda fonksiyonu şimdi dağıtılmış ve PDF'leri render ediyor. IronPDF'nin başarılı bir dağıtımından sonraki en yaygın sonraki adımları kapsayan kılavuzlar şunlardır:

IronPDF for Java ücretsiz deneme başlatın ve değerlendirme süresince sınırlama olmaksızın Lambda işlevinizde PDF'ler oluşturup düzenleyin. Üretime dağıtmaya hazır olduğunuzda, IronPDF lisanslama seçeneklerini görüntüleyin ve sunucusuz iş yüküne uygun planı bulun.

Sıkça Sorulan Sorular

Neden IronPDF'yi AWS Lambda'da Zip dağıtımı olarak kullanamıyorum?

IronPDF, çalışma zamanında çıkarılması ve çalıştırılması gereken yerel bir Chromium tabanlı render motoru ile birlikte gelir. Zip dağıtımları, yazma iznini kısıtlayan ve paket boyutunu sınırlayan yönetilen bir çalışma zamanı ortamında çalışır. Konteyner görüntüsü dağıtımı, IronPDF'nin gereken dosya sistemi, yüklü sistem kütüphaneleri ve görüntü boyutu üzerinde tam kontrol sağlar.

Neden IronPDF motoru çalışma dizini /tmp/ olarak ayarlanmalı?

Lambda yürütme ortamı, fonksiyon kodu dizinini salt okunur olarak monte eder. IronPDF, motor ikili dosyalarını, soket dosyalarını ve geçici render varlıklarını yazılabilir bir konuma yazmalıdır. Bir Lambda fonksiyonunda tek yazılabilir yol /tmp/ olduğundan, Settings.setIronPdfEngineWorkingDirectory(Paths.get("/tmp/")) herhangi bir render işlemi öncesinde çağrılmalıdır.

Lambda fonksiyonunun minimum bellek ihtiyacı nedir?

MemorySize’ı en az 1024 MB olarak ayarlayın. Chromium render motoru bellek yoğun olup, daha az belleğe sahip fonksiyonlar bellek yetersiz hataları ile karşılaşacaktır. Üretim iş yükleri için 2048 MB önerilir çünkü AWS, CPU tahsisini bellekle orantılı olarak ölçeklendirir, bu da render sürelerini kısaltır.

EphemeralStorage boyutunun neden 1024 MB olarak ayarlandığını?

Varsayılan Lambda geçici depolama tahsisi 512 MB'dir. Soğuk başlangıçta, IronPDF render motoru ikili dosyalarını ve font önbelleğini /tmp/ içine çıkarır. Bu varlıklar 512 MB’yi aşabilir, bu da çıkarmanın başarısız olmasına neden olabilir. EphemeralStorage'ı 1024 MB olarak ayarlamak bu hatayı önler.

Neden java8 yerine java8.al2 temel görüntülerini kullanmalıyım?

java8 temel görüntüsü, eski paket depolarına sahip ve IronPDF’nin gerektirdiği birkaç kütüphaneden yoksun olan orijinal Amazon Linux 1 üzerinde çalışır. java8.al2 görüntüsü, Amazon Linux 2’yi kullanır, güncel paketlere ve Chromium render motorunun ihtiyaç duyduğu X11, GTK3 ve Pango kütüphanelerine tam destek sağlar.

IronPDF için gerekli Lambda zaman aşımı nedir?

Zaman aşımını en az 330 saniye olarak ayarlayın. Soğuk başlangıçta, IronPDF render motorunu çıkarmalı ve bir Chromium sürecini başlatmalı, bu da 30-60 saniye sürebilir. Kısa zaman aşımı, soğuk başlangıç çağrılarının zaman aşımına uğrama hatasıyla başarısız olmasına neden olur. Sıcak çağrılar genellikle birkaç saniye içinde tamamlanır.

Lambda fonksiyonunu dağıtmadan önce yerel olarak test edebilir miyim?

Evet. Geliştirme Makinesinde Docker çalışırken, test etkinliği yüküyle birlikte sam local invoke komutunu çalıştırın. SAM, konteyner görüntüsünü yerel olarak başlatacak ve fonksiyon handler’ını çağıracaktır, AWS’ye dağıtmadan PDF oluşturmayı doğrulamanıza olanak tanır.

IronPDF üretiminde soğuk başlangıç gecikmesini nasıl azaltabilirim?

AWS Lambda Provisioned Concurrency kullanarak belirli sayıda örneği başlatılmaya hazır ve talepleri karşılamaya hazır şekilde tutun. Bu, rezerve edilen kapasite için ek ücretler karşılığında o örnekler için soğuk başlangıçları ortadan kaldırır.

AWS Lambda için hangi IronPDF Maven artefaktları gereklidir?

Java API için ironpdf, yerel render motoru için ironpdf-engine-linux-x64 ve gRPC taşıma bağımlılıkları grpc-okhttp, grpc-netty-shaded, ve perfmark-api gereklidir. ironpdf ve ironpdf-engine-linux-x64 sürümleri eşleşmelidir.

Oluşturulan PDF’i ikili bir HTTP yanıtı olarak nasıl dönebilirim?

pdf.saveAs() çağırmak yerine, pdf.getBinaryData() ile ham baytları alın ve Base64 ile kodlayın. API Gateway yanıtına isBase64Encoded: true ve Content-Type: application/pdf ayarlayın. Büyük dosyalar için, Amazon S3'ye yüklemek ve önceden imzalanmış bir URL döndürmek daha uygun bir yaklaşımdır.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku
Başlamaya Hazır mısınız?
Sürüm: 2026.5 just released
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz?
bir örnek çalıştır HTML'nizi bir PDF'ye dönüştüğünü izleyin.