IronWord 始める AWSへのデプロイ AWS LambdaでIronWordを使う方法 Kye Stuart 更新日:8月 20, 2025 IronWord をダウンロード NuGet ダウンロード 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる ジェミニで開く このページについてGeminiに問い合わせる 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る This article was translated from English: Does it need improvement? Translated View the article in English この記事は、IronWordを使用してAWS Lambda関数を設定するための包括的なガイドを提供します。 AWS Lambda環境内でWord文書を作成および操作するためにIronWordを設定する方法を学びます。 AWS LambdaでIronWordを使う方法 IronWordをダウンロードしてプロジェクトに追加する Visual Studio を使用して AWS Lambda プロジェクトを作成する Word文書を生成するためにFunctionHandlerコードを変更する Dockerコンテナを使用してプロジェクトを構成してデプロイする Lambda関数を呼び出してS3上の出力ファイルを確認する インストール この例ではWord文書をS3バケットに読み書きするため、AWSSDK.S3 NuGetパッケージが必要です。 AWS LambdaでのIronWord ZIPパッケージの使用 IronWord ZIPパッケージを使用する際、AWS Lambdaは読み取り専用ファイルシステム(/tmp/フォルダを除く)であるため、一時的な展開パスを設定することが重要です。 ランタイムファイルにこのフォルダを使用するようにIronWordを設定する必要があります: var awsTmpPath = @"/tmp/"; IronSoftware.Word.Installation.DeploymentPath = awsTmpPath; var awsTmpPath = @"/tmp/"; IronSoftware.Word.Installation.DeploymentPath = awsTmpPath; Dim awsTmpPath = "/tmp/" IronSoftware.Word.Installation.DeploymentPath = awsTmpPath $vbLabelText $csharpLabel IronWordとAWSの統合 AWS Lambdaプロジェクトの作成 コンテナ化されたAWS Lambdaプロジェクトを作成するにはVisual Studioを使用します: Visual Studio用AWS Toolkitをインストールする AWS Lambdaプロジェクト(.NET Core - C#)を選択する .NET 8(Container Image)ブループリントを選択して設定を完了する デプロイメントタイプとしてコンテナイメージを選択する パッケージ依存関係の追加 IronWordとAWSSDK.S3パッケージをNuGet経由でプロジェクトに追加します。 正しい設定を行えば、IronWordライブラリはAWS Lambdaでスムーズに動作します。以下のコマンドを実行してIronWordをAWSプロジェクトにシームレスにインストールします: Install-Package IronWord プロジェクトのDockerfileを更新して.NET 8 Lambdaベースイメージを使用し、ビルド成果物をコピーします: FROM public.ecr.aws/lambda/dotnet:8 RUN dnf update -y WORKDIR /var/task COPY "bin/Release/lambda-publish" . FunctionHandlerコードの修正 以下に示すのは、シンプルなWord文書を作成し、.docxファイルとして保存し、S3バケットにアップロードする例のLambda関数です。 using Amazon.Lambda.Core; using Amazon.S3; using Amazon.S3.Model; using IronWord; using IronWord.Models; using System.Text; // 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 IronWordAwsLambda; public class Function { private static readonly IAmazonS3 _s3Client = new AmazonS3Client(Amazon.RegionEndpoint.APSoutheast1); public async Task FunctionHandler(ILambdaContext context) { var awsTmpPath = @"/tmp/"; License.LicenseKey = "YOUR-LICENSE-KEY"; // Replace if you have one string filename = Guid.NewGuid() + ".docx"; string localPath = Path.Combine(awsTmpPath, filename); string bucketName = "your-s3-bucket-name"; string objectKey = $"IronWordAwsLambda/{filename}"; try { // Create Word Document var doc = new WordDocument(); Paragraph paragraph = new Paragraph(new TextContent("Hello from IronWord on AWS Lambda!")); doc.AddParagraph(paragraph); doc.SaveAs(localPath); context.Logger.LogLine("Word document created."); // Upload to S3 byte[] fileBytes = await File.ReadAllBytesAsync(localPath); await UploadToS3Async(bucketName, objectKey, fileBytes); context.Logger.LogLine($"Document uploaded to S3: {bucketName}/{objectKey}"); } catch (Exception ex) { context.Logger.LogLine($"[ERROR] {ex.Message}"); } } private async Task UploadToS3Async(string bucketName, string objectKey, byte[] fileBytes) { using var stream = new MemoryStream(fileBytes); var request = new PutObjectRequest { BucketName = bucketName, Key = objectKey, InputStream = stream, ContentType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document" }; await _s3Client.PutObjectAsync(request); } } using Amazon.Lambda.Core; using Amazon.S3; using Amazon.S3.Model; using IronWord; using IronWord.Models; using System.Text; // 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 IronWordAwsLambda; public class Function { private static readonly IAmazonS3 _s3Client = new AmazonS3Client(Amazon.RegionEndpoint.APSoutheast1); public async Task FunctionHandler(ILambdaContext context) { var awsTmpPath = @"/tmp/"; License.LicenseKey = "YOUR-LICENSE-KEY"; // Replace if you have one string filename = Guid.NewGuid() + ".docx"; string localPath = Path.Combine(awsTmpPath, filename); string bucketName = "your-s3-bucket-name"; string objectKey = $"IronWordAwsLambda/{filename}"; try { // Create Word Document var doc = new WordDocument(); Paragraph paragraph = new Paragraph(new TextContent("Hello from IronWord on AWS Lambda!")); doc.AddParagraph(paragraph); doc.SaveAs(localPath); context.Logger.LogLine("Word document created."); // Upload to S3 byte[] fileBytes = await File.ReadAllBytesAsync(localPath); await UploadToS3Async(bucketName, objectKey, fileBytes); context.Logger.LogLine($"Document uploaded to S3: {bucketName}/{objectKey}"); } catch (Exception ex) { context.Logger.LogLine($"[ERROR] {ex.Message}"); } } private async Task UploadToS3Async(string bucketName, string objectKey, byte[] fileBytes) { using var stream = new MemoryStream(fileBytes); var request = new PutObjectRequest { BucketName = bucketName, Key = objectKey, InputStream = stream, ContentType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document" }; await _s3Client.PutObjectAsync(request); } } Imports Amazon.Lambda.Core Imports Amazon.S3 Imports Amazon.S3.Model Imports IronWord Imports IronWord.Models Imports System.Text ' Assembly attribute to enable the Lambda function's JSON input to be converted into a .NET class. <Assembly: LambdaSerializer(GetType(Amazon.Lambda.Serialization.SystemTextJson.DefaultLambdaJsonSerializer))> Namespace IronWordAwsLambda Public Class [Function] Private Shared ReadOnly _s3Client As IAmazonS3 = New AmazonS3Client(Amazon.RegionEndpoint.APSoutheast1) Public Async Function FunctionHandler(ByVal context As ILambdaContext) As Task Dim awsTmpPath = "/tmp/" License.LicenseKey = "YOUR-LICENSE-KEY" ' Replace if you have one Dim filename As String = Guid.NewGuid().ToString() & ".docx" Dim localPath As String = Path.Combine(awsTmpPath, filename) Dim bucketName As String = "your-s3-bucket-name" Dim objectKey As String = $"IronWordAwsLambda/{filename}" Try ' Create Word Document Dim doc = New WordDocument() Dim paragraph As New Paragraph(New TextContent("Hello from IronWord on AWS Lambda!")) doc.AddParagraph(paragraph) doc.SaveAs(localPath) context.Logger.LogLine("Word document created.") ' Upload to S3 Dim fileBytes() As Byte = Await File.ReadAllBytesAsync(localPath) Await UploadToS3Async(bucketName, objectKey, fileBytes) context.Logger.LogLine($"Document uploaded to S3: {bucketName}/{objectKey}") Catch ex As Exception context.Logger.LogLine($"[ERROR] {ex.Message}") End Try End Function Private Async Function UploadToS3Async(ByVal bucketName As String, ByVal objectKey As String, ByVal fileBytes() As Byte) As Task Dim stream = New MemoryStream(fileBytes) Dim request = New PutObjectRequest With { .BucketName = bucketName, .Key = objectKey, .InputStream = stream, .ContentType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document" } Await _s3Client.PutObjectAsync(request) End Function End Class End Namespace $vbLabelText $csharpLabel メモリとタイムアウトを増やす ドキュメント処理はメモリを多く消費する可能性があるため、aws-lambda-tools-defaults.jsonでLambda関数のメモリを少なくとも512 MB、タイムアウトを300秒に増やします: { "function-memory-size": 512, "function-timeout": 300 } Runtime exited with error: signal: killedのようなエラーが発生した場合、メモリを増やすかコードを最適化します。 公開 Lambda関数を公開するには: Visual Studioでプロジェクトを右クリック AWS Lambdaに公開...を選択 ウィザードに従って必要に応じて設定を構成します 試してみよう! AWS LambdaコンソールまたはVisual Studioを通じてLambda関数を呼び出します。 実行後、新しく作成されたWord文書をS3バケットで確認します。 よくある質問 IronWordとは何ですか、またどのようにしてAWS Lambda上でWordドキュメントの処理を強化できますか? IronWordはWordドキュメントを処理するための強力なツールであり、AWS Lambdaと統合することで、スケーラブルで効率的なドキュメント管理を提供し、Wordドキュメントタスクを自動化および合理化することができます。 どのようにIronWordをAWS Lambdaと統合しますか? IronWordをAWS Lambdaと統合するには、AWS Lambda環境にIronWordパッケージを設定し、必要な権限を構成し、IronWordのドキュメント処理機能を利用するための関数コードをデプロイする必要があります。 AWS LambdaでIronWordを使用する利点は何ですか? AWS LambdaでIronWordを使用することで、スケーラビリティ、コスト効率、インフラストラクチャ管理の削減を提供するサーバーレスアーキテクチャをWordドキュメント処理に活用することができます。 IronWordをAWS Lambdaで使用してWordドキュメントタスクを自動化できますか? はい、IronWordをAWS Lambda機能内で使用することで、作成、修正、変換などのさまざまなWordドキュメントタスクを自動化することができます。 IronWordでAWS Lambdaを使用して大規模なWordドキュメントを処理することは可能ですか? IronWordは大規模なWordドキュメントを効率的に処理するように設計されており、AWS Lambdaと併用することで、Lambdaの構成に応じてスケーラブルにドキュメントを処理することができます。 IronWordはAWS Lambda上でどのようなWordドキュメント操作を実行できますか? IronWordは、編集、フォーマット、テキストの抽出、ドキュメントの他の形式への変換など、さまざまな操作をAWS Lambda環境内で実行できます。 AWS LambdaにIronWordをデプロイするための前提条件はありますか? AWS LambdaにIronWordをデプロイする前に、AWSアカウントがあり、AWS Lambdaのセットアップに精通しており、必要なIAMロールと権限が構成されていることを確認してください。 IronWordはAWS Lambda上での更新とメンテナンスをどのように処理しますか? IronWordは互換性およびパフォーマンスの向上を確保するために定期的に更新されています。AWS Lambda環境では、最新バージョンのIronWordでデプロイメントパッケージを簡単に更新し、最適な機能を維持することができます。 IronWordをAWS Lambdaと共に使用する際のサポートは何がありますか? Iron Softwareは、IronWordをAWS Lambdaと統合および使用する際にユーザーを支援するためのドキュメントとサポートを提供し、ドキュメント処理のニーズに効果的に利用できるようにしています。 Kye Stuart 今すぐエンジニアリングチームとチャット テクニカルライター Kye Stuartは、Iron Softwareでコーディングへの情熱と執筆スキルを融合させています。ソフトウェアデプロイメントを学んでいるYoobeeカレッジで教育を受け、今では複雑な技術的概念を明瞭な教育コンテンツに変換しています。Kyeは生涯学習を重視し、新しい技術的課題を受け入れています。仕事の外では、PCゲームを楽しんだり、Twitchでストリーミングをしたり、Jaiyaという犬と庭仕事や散歩をするなど、アウトドア活動を楽しんでいます。Kyeの明確なアプローチは、Iron Softwareの技術を世界中の開発者に親しみやすくするという使命の重要な部分を担っています。 準備はできましたか? Nuget ダウンロード 27,129 | Version: 2025.11 リリース NuGet 無料版 総ダウンロード数: 27,129 ライセンスを見る