IRONSOFTWAREHOME

AWS LambdaでドキュメントをOCR処理する方法

Curtis Chau
Curtis Chau
Updated: 2026年6月4日

このハウツー記事では、IronOCR を使用して AWS Lambda 関数を設定するための手順ガイドを提供します。 このガイドに従うことで、IronOCR を設定し、S3 バケットに保存されているドキュメントを効率的に読み取る方法を学習します。

インストール

この記事では、S3バケットを使用するため、**AWSSDK.S3**パッケージが必要です。

IronOCR ZIP を使用する場合は、一時フォルダーを設定することが不可欠です。

// 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.

最初のステップ:
arrow pointer

AWS Lambdaプロジェクトを作成

Visual Studioを使用すれば、コンテナ化されたAWS Lambdaを簡単に作成できます:

  • AWS Toolkit for Visual Studioをインストールします。
  • "AWS Lambda プロジェクト (.NET Core - C#)"を選択します。
  • '.NET 8 (Container Image)' ブループリントを選択し、次に '完了' を選択

コンテナイメージを選択

パッケージ依存関係を追加

.NET 8 で IronOCR ライブラリを使用する場合、AWS Lambda で使用するために追加の依存関係をインストールする必要はありません。 プロジェクトの Dockerfile を次のように変更します。

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コードの修正

この例では、S3 バケットから画像を取得して処理し、検索可能な PDF を同じバケットに保存します。 IronOCR ZIP を使用する場合、ライブラリが DLL からランタイム フォルダーをコピーするために書き込み権限を必要とするため、一時フォルダーを設定することが不可欠です。

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 ブロックの前に、IronPDFZip ディレクトリから読み取るファイル 'sample.pdf' が指定されています。 次に、LoadPdfメソッドに渡します。

メモリとタイムアウトの増加

Lambda関数に割り当てられるメモリ量は、処理されるドキュメントのサイズと同時に処理されるドキュメント数に応じて変わります。 基準値として、メモリを512MB、タイムアウトを300秒に設定します。aws-lambda-tools-defaults.jsonで。

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

メモリが不足すると、プログラムは 'Runtime exited with error: signal: killed.'とエラーを投げます。メモリサイズを増やすことでこの問題を解決できます。 詳細については、トラブルシューティングの記事" AWS Lambda - ランタイム終了シグナル: Killed"を参照してください。

公開

Visual Studioで公開するには、プロジェクトを右クリックして 'AWS Lambdaに公開...' を選択し、必要な設定を構成します。 Lambdaの公開についてさらに詳しくは、AWSのウェブサイトを参照してください。

試してみましょう!

LambdaコンソールまたはVisual Studioを使用して、Lambda関数をアクティブにすることができます。

よくある質問

C#を使用してAWSでドキュメントにOCRを実行するにはどうすればいいですか?

IronOCRを使用すると、AWS Lambdaと統合することで、Amazon S3バケットに保存されているドキュメントにOCRを実行できます。これは、S3からドキュメントを取得し、IronOCRで処理した後、結果を再びS3にアップロードするC#のLambda関数を作成することを含みます。

C#を使用してAWS LambdaでOCRを設定するためにどのようなステップが必要ですか?

C#を使用してAWS LambdaでOCRを設定するには、IronOCRライブラリをダウンロードし、Visual StudioでAWS Lambdaプロジェクトを作成し、IronOCRを使用して処理する関数ハンドラーを構成して、関数をデプロイする必要があります。この設定により、画像を検索可能なPDFに変換できます。

AWS LambdaでOCRを実行するための推奨構成は何ですか?

AWS LambdaでIronOCRを使用してOCRを実行する際の最適なパフォーマンスのためには、少なくとも512 MBのメモリ割り当てと300秒のタイムアウト期間を設定することが推奨されます。これらの設定は、大規模または複数のドキュメントの処理を管理するのに役立ちます。

AWS Lambdaで「Runtime exited with error: signal: killed」にどのように対処しますか?

このエラーは、Lambda関数が割り当てられたメモリを使い果たしたことを示すことがよくあります。大規模なドキュメントをIronOCRで処理する際、この問題を解決するには、Lambda関数の構成でメモリ割り当てを増やすことができます。

AWS Lambda OCR関数をデプロイ前にローカルでテストできますか?

はい、AWS Toolkit for Visual Studioを使用して、AWS Lambda OCR関数をローカルでテストすることができます。このツールキットは、Lambda実行をシミュレートするためのローカル環境を提供し、デプロイ前に関数のデバッグと改善を行うことができます。

AWS LambdaプロジェクトのDockerfileの目的は何ですか?

AWS LambdaプロジェクトのDockerfileは、Lambda関数の実行環境と依存関係を定義するコンテナイメージを作成するために使用されます。これにより、関数がAWSで適切に実行されるために必要なすべてのコンポーネントを確実に備えることができます。

AWS Lambdaで.NET 8を使用する際にIronOCRを使用するために追加の依存関係は必要ですか?

AWS Lambdaで.NET 8を使用する際にIronOCRライブラリと必要なAWS SDKパッケージ以外の追加の依存関係は必要ありません。これにより、OCRタスクを実行するための統合プロセスが簡素化されます。

C# OCRをAWS Lambdaと統合するための前提条件は何ですか?

C# OCRをAWS Lambdaと統合する前に、AWS SDK for S3、IronOCRライブラリ、およびAWS Toolkit for Visual Studioをインストールする必要があります。また、ドキュメントを保存および取得するための設定済みのS3バケットも必要です。

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
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

...
詳しく読む

準備はできましたか?

Nuget Downloads 6,236,385バージョン:2026.9リリースされたばかり

あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。
PDF用C# NuGetライブラリ
NuGetでインストール

バージョン: 2026.9

PM > Install-Package IronOcr
nuget.org/packages/IronOcr/
  1. ソリューションエクスプローラーで参照を右クリックし、NuGetパッケージを管理を選択
  2. 「参照」を選択して「IronOCR」を検索
  3. パッケージを選択してインストール
C# PDF DLL
DLLをダウンロード

バージョン: 2026.9

または、Windowsインストーラーをこちらからダウンロード。

  1. IronOCRをダウンロードして、ソリューションディレクトリ内の~/Libsなどの場所に解凍します
  2. Visual Studioソリューションエクスプローラーで、リファレンスを右クリックします。「参照」、「IronOCR.dll」を選択

$999からのライセンス

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。