IRONSOFTWAREHOME

AWS Lambda Üzerinde Belgeleri OCR Yapma Yöntemleri

Curtis Chau
Curtis Chau
Updated: 4 Haziran 2026

Bu nasıl yapılır makalesi, IronOCR kullanarak bir AWS Lambda işlevinin kurulumu için adım adım bir rehber sunar. Bu rehberi izleyerek, IronOCR'yi yapılandırmayı ve S3 kovasında saklanan belgeleri etkili bir şekilde okumayı öğreneceksiniz.

Kurulum

Bu makalede bir S3 kovası kullanılacak, bu yüzden AWSSDK.S3 paketi gereklidir.

IronOCR ZIP kullanıyorsanız, geçici klasörü ayarlamak zorunludur.

// Set temporary folder path and log file path for IronOCR.
var awsTmpPath = @"/tmp/";
IronOcr.Installation.InstallationPath = awsTmpPath;
IronOcr.Installation.LogFilePath = awsTmpPath;

Start using IronOCR in your project today with a free trial.

İlk Adım:
arrow pointer

Bir AWS Lambda Projesi Oluşturun

Visual Studio ile, kapsayıcılaştırılmış bir AWS Lambda oluşturmak kolay bir işlemdir:

Konteyner görüntüsünü seçin

Paket Bağımlılıklarını Ekleyin

.NET 8'de IronOCR kütüphanesini AWS Lambda üzerinde kullanmak için ek bir bağımlılık yüklemeye gerek yoktur. Projenin Dockerfile dosyasını aşağıdakiyle değiştirin:

FROM public.ecr.aws/lambda/dotnet:8

# Update all installed packages
RUN dnf update -y

WORKDIR /var/task

# Copy build artifacts from the host machine into the Docker image
COPY "bin/Release/lambda-publish" .
Text

FunctionHandler Kodunu Düzenleyin

Bu örnek, bir görüntüyü bir S3 kovasından alır, işlemler ve aranabilir bir PDF olarak aynı kovaya geri kaydeder. IronOCR ZIP kullanırken geçici klasörün ayarlanması zorunludur, çünkü kütüphane, DLL'lerden çalışma zamanı klasörünü kopyalamak için yazma izinleri gerektirir.

using Amazon.Lambda.Core;
using Amazon.S3;
using Amazon.S3.Model;
using IronOcr;
using System;
using System.IO;
using System.Threading.Tasks;

// Assembly attribute to enable the Lambda function's JSON input to be converted into a .NET class.
[assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.SystemTextJson.DefaultLambdaJsonSerializer))]

namespace IronOcrZipAwsLambda
{
    public class Function
    {
        // Initialize the S3 client with a specific region endpoint
        private static readonly IAmazonS3 _s3Client = new AmazonS3Client(Amazon.RegionEndpoint.APSoutheast1);

        /// <summary>
        /// Function handler to process OCR on the PDF stored in S3.
        /// </summary>
        /// <param name="context">The ILambdaContext that provides methods for logging and describing the Lambda environment.</param>
        public async Task FunctionHandler(ILambdaContext context)
        {
            // Set up necessary paths for IronOCR
            var awsTmpPath = @"/tmp/";
            IronOcr.Installation.InstallationPath = awsTmpPath;
            IronOcr.Installation.LogFilePath = awsTmpPath;

            // Set license key for IronOCR
            IronOcr.License.LicenseKey = "IRONOCR-MYLICENSE-KEY-1EF01";

            string bucketName = "deploymenttestbucket"; // Your bucket name
            string pdfName = "sample";
            string objectKey = $"IronPdfZip/{pdfName}.pdf";
            string objectKeyForSearchablePdf = $"IronPdfZip/{pdfName}-SearchablePdf.pdf";

            try
            {
                // Retrieve the PDF file from S3
                var pdfData = await GetPdfFromS3Async(bucketName, objectKey);

                // Initialize IronTesseract for OCR processing
                IronTesseract ironTesseract = new IronTesseract();
                OcrInput ocrInput = new OcrInput();
                ocrInput.LoadPdf(pdfData);
                OcrResult result = ironTesseract.Read(ocrInput);

                // Log the OCR result
                context.Logger.LogLine($"OCR result: {result.Text}");

                // Upload the searchable PDF to S3
                await UploadPdfToS3Async(bucketName, objectKeyForSearchablePdf, result.SaveAsSearchablePdfBytes());
                context.Logger.LogLine($"PDF uploaded successfully to {bucketName}/{objectKeyForSearchablePdf}");
            }
            catch (Exception e)
            {
                context.Logger.LogLine($"[ERROR] FunctionHandler: {e.Message}");
            }
        }

        /// <summary>
        /// Retrieves a PDF from S3 and returns it as a byte array.
        /// </summary>
        private async Task<byte[]> GetPdfFromS3Async(string bucketName, string objectKey)
        {
            var request = new GetObjectRequest
            {
                BucketName = bucketName,
                Key = objectKey
            };

            using (var response = await _s3Client.GetObjectAsync(request))
            using (var memoryStream = new MemoryStream())
            {
                await response.ResponseStream.CopyToAsync(memoryStream);
                return memoryStream.ToArray();
            }
        }

        /// <summary>
        /// Uploads the generated searchable PDF back to S3.
        /// </summary>
        private async Task UploadPdfToS3Async(string bucketName, string objectKey, byte[] pdfBytes)
        {
            using (var memoryStream = new MemoryStream(pdfBytes))
            {
                var request = new PutObjectRequest
                {
                    BucketName = bucketName,
                    Key = objectKey,
                    InputStream = memoryStream,
                    ContentType = "application/pdf"
                };

                await _s3Client.PutObjectAsync(request);
            }
        }
    }
}

Try bloğundan önce, IronPdfZip dizininde 'sample.pdf' dosyasının okuma işlemi için ayarlandığından emin olun. GetPdfFromS3Async yöntemi daha sonra PDF baytını almak için kullanılır ve bu LoadPdf yöntemine geçirilir.

Bellek ve Zaman Aşımını Artırın

Lambda fonksiyonunda tahsis edilen bellek miktarı, işlenen belgelerin boyutuna ve aynı anda işlenen belge sayısına bağlı olarak değişecektir. Temel olarak, belleği 512 MB ve zaman aşımını 300 saniye olarak aws-lambda-tools-defaults.json içinde ayarlayın.

{
    "function-memory-size": 512,
    "function-timeout": 300
}
JSON

Bellek yetersiz olduğunda, program 'Çalışma zamanı hatayla çıktı: sinyal: öldürüldü.' hatasını verecektir. Bellek boyutunu artırmak bu sorunu çözebilir. Daha fazla bilgi için sorun giderme makalesine bakın: AWS Lambda - Çalışma Süresi Sinyali: Kapatıldı.

Yayınla

Visual Studio'da yayınlamak için, proje üzerine sağ tıklayın ve 'AWS Lambda'ya Yayınla...' seçin, ardından gerekli ayarları yapılandırın. Lambda yayımlamak hakkında daha fazla bilgiyi AWS web sitesinde bulabilirsiniz.

Deneyin!

Lambda işlevini, Lambda konsolu veya Visual Studio aracılığıyla etkinleştirebilirsiniz.

Sıkça Sorulan Sorular

C# kullanarak AWS'de belgeler üzerinde nasıl OCR yapabilirim?

IronOCR'yi AWS Lambda ile entegre ederek Amazon S3 kovalarında saklanan belgelerde OCR gerçekleştirebilirsiniz. Bu, S3'ten belgeleri alan, IronOCR ile işleyip sonuçları tekrar S3'e yükleyen bir C# Lambda işlevi oluşturmayı içerir.

C# ile AWS Lambda üzerine OCR kurmayı içeren adımlar nelerdir?

C# kullanarak AWS Lambda üzerinde OCR kurmak için, IronOCR kütüphanesini indirmeniz, Visual Studio içinde bir AWS Lambda projesi oluşturmanız, fonksiyon yöneticinizi IronOCR'u kullanarak işlemler için yapılandırmanız ve fonksiyonunuzu dağıtmanız gereklidir. Bu kurulum, görüntüleri aranabilir PDF'lere dönüştürmenizi sağlar.

AWS Lambda üzerinde OCR çalıştırmak için önerilen yapılandırma nedir?

AWS Lambda üzerinde IronOCR ile OCR çalıştırırken en iyi performans için en az 512 MB hafıza tahsisi ve 300 saniyelik bir zaman aşımı süresi ayarlamanız önerilir. Bu ayarlar, büyük veya çok sayıda belgenin işlenmesine yardımcı olur.

'Runtime exited with error: signal: killed' hatasını AWS Lambda üzerinde nasıl çözerim?

Bu hata genellikle Lambda fonksiyonunuzun tahsis edilen hafızasını tükettiğini gösterir. Lambda işlevinin yapılandırmasında hafıza tahsisini artırmak, özellikle IronOCR ile büyük belgeleri işlerken bu sorunu çözebilir.

AWS Lambda OCR fonksiyonumu dağıtmadan önce yerel olarak test edebilir miyim?

Evet, AWS Toolkit for Visual Studio kullanarak AWS Lambda OCR fonksiyonunuzu yerel olarak test edebilirsiniz. Bu araç kiti, Lambda yürütmelerini simüle etmek için yerel bir ortam sunar ve böylece fonksiyonunuzu dağıtmadan önce hata ayıklayıp geliştirmenizi sağlar.

AWS Lambda projesinde bir Dockerfile'in amacı nedir?

AWS Lambda projesindeki bir Dockerfile, Lambda fonksiyonunuz için yürütme ortamını ve bağımlılıkları tanımlayan bir konteyner imajı oluşturmak için kullanılır. Bu, fonksiyonunuzun AWS'de sorunsuz çalışması için gerekli tüm bileşenlere sahip olmasını sağlar.

.NET 8 üzerinde AWS Lambda kullanırken IronOCR için ek bağımlılıkları gerekir mi?

.NET 8 üzerinde AWS Lambda kullanırken, IronOCR kütüphanesi ve gerekli AWS SDK paketleri dışında herhangi bir ek bağımlılık gerekmez. Bu, OCR görevlerini yürütmek için entegrasyon sürecini basitleştirir.

C# OCR ile AWS Lambda entegrasyonu için gereklilikler nelerdir?

C# OCR ile AWS Lambda entegrasyonundan önce, S3 için AWS SDK'sını, IronOCR kütüphanesini ve Visual Studio için AWS Toolkit'i kurmanız gerekir. Belgeleri depolamak ve almak için yapılandırılmış bir S3 kovası da gereklidir.

How do I log OCR results in an AWS Lambda function using IronOCR?

In your AWS Lambda function, use the Lambda context's `Logger.LogLine` method to log OCR results. This allows you to track and verify the OCR output processed by IronOCR.

Is it necessary to install additional dependencies for IronOCR in .NET 8 when deploying to AWS Lambda?

No additional dependencies are required for utilizing the IronOCR library in a .NET 8 AWS Lambda project, aside from setting the correct paths and configuring necessary packages like AWSSDK.S3 for S3 operations.

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ılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.

...
Daha Fazla Oku

Başlamaya Hazır mısınız?

Nuget Downloads 6,236,385Sürüm:2026.9yeni yayınlandı

Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez
PDF için C# NuGet Kütüphanesi
NuGet ile yükleyin

Sürüm: 2026.9

PM > Install-Package IronOcr
nuget.org/packages/IronOcr/
  1. Çözüm Gezgini'nde Referanslar'a sağ tıklayın, NuGet Paketlerini Yönet
  2. "IronOCR" aratıp seçin
  3. Paketi seçin ve yükleyin
C# PDF DLL
DLL İndir

Sürüm: 2026.9

veya buradan Windows Yükleyicisini indirin.

  1. IronOCR'u ~/Libs gibi bir yere indirip sıkıştırmasını açın, Çözüm dizininizde
  2. Visual Studio Çözüm Gezgini'nde, Referanslar'a sağ tıklayın. Gözat'ı seçin, "IronOCR.dll"

$999'dan itibaren lisanslar

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez