IRONSOFTWAREHOME

如何在AWS Lambda上使用IronWord

Kye Stuart
Kye Stuart
Updated: 2026年6月4日

本文提供了使用IronWord設定AWS Lambda函式的綜合指南。 您將學習如何配置IronWord以便在AWS Lambda環境中建立和操作Word文件。

安裝

由於此範例將讀/寫Word文件到S3儲存桶,因此需要AWSSDK.S3 NuGet套件

在AWS Lambda上使用IronWord ZIP套件

使用IronWord ZIP套件時,必須設定臨時部署路徑,因為AWS Lambda的文件系統是唯讀的,除了/tmp/文件夾。 您必須配置IronWord使用此文件夾作為其運行時文件的路徑:

var awsTmpPath = @"/tmp/";
C#

將IronWord與AWS整合

建立AWS Lambda專案

使用Visual Studio建立一個容器化的AWS Lambda專案:

  1. 安裝Visual Studio的AWS工具包
  2. 選擇AWS Lambda專案(.NET Core - C#)
  3. 選擇.NET 8(容器映像)藍圖並完成設置
  4. 選擇容器映像作為部署型別

新增套件依賴

通過NuGet將IronWord和AWSSDK.S3套件新增到您的專案中。 正確設定後,IronWord程式庫在AWS Lambda上運行流暢。運行以下命令以無縫安裝IronWord到您的AWS專案中:

PM > 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"  .
Text

修改FunctionHandler程式碼

以下是一個範例Lambda函式,可以建立一個簡單的Word文件,將其保存為.docx文件,並上傳到S3儲存桶。

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);
    }
}

增加記憶體和超時

由於文件處理可能消耗大量記憶體,請在aws-lambda-tools-defaults.json中將Lambda函式的記憶體增加至至少512 MB,並將超時設為300秒:

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

如果遇到像"Runtime exited with error: signal: killed"這樣的錯誤,請增加記憶體或優化您的程式碼。

發布

要發布您的Lambda函式:

  • 在Visual Studio中右鍵單擊您的專案
  • 選擇發佈到AWS Lambda...
  • 按照精靈進行操作並根據需要配置設置

試試看!

通過AWS Lambda控制台或Visual Studio調用Lambda函式。 執行後,檢查您的S3儲存桶,查看新建立的Word文件。

常見問題

什麼是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文件處理,提供可擴展性,成本效益,以及減少基礎設施管理。

我可以在AWS Lambda上使用IronWord自動化Word文件任務嗎?

是的,您可以透過在AWS Lambda函式中使用IronWord來自動化多種Word文件任務,如建立、修改和轉換。

在AWS Lambda上使用IronWord可以處理大型Word文件嗎?

IronWord被設計來有效處理大型Word文件,並且在AWS Lambda上使用時,可以根據您的Lambda配置以可擴展的方式進行處理。

IronWord可以在AWS Lambda上執行哪些Word文件操作?

IronWord可以在AWS Lambda環境中對Word文件執行各種操作,包括編輯、格式化、提取文字,並將文件轉換為不同格式。

部署IronWord到AWS Lambda有任何先決條件嗎?

在部署IronWord到AWS Lambda之前,請確保您擁有AWS帳戶,熟悉AWS Lambda設置,以及配置任何必要的IAM角色和權限。

IronWord如何在AWS Lambda上處理更新和維護?

IronWord會經常更新以確保相容性和性能提升。在AWS Lambda環境中,您可以輕鬆地使用IronWord的最新版本更新您的部署包以保持最佳功能。

使用IronWord與AWS Lambda時有哪些支援可用?

Iron Software提供文件和支援以協助使用者將IronWord整合和使用在AWS Lambda上,確保您可以高效地利用它的能力來滿足您的文件處理需求。

What should I do if I encounter errors while using IronWord on AWS Lambda?

If you encounter errors like 'Runtime exited with error: signal: killed,' try increasing the memory allocation or optimizing your code for better performance.

Kye Stuart
技術作家

Kye Stuart在Iron Software結合了編碼熱情與寫作技能。就讀於Yoobee學院,專攻軟體部署,現在將複雜的技術概念轉化為清晰的教育內容。Kye重視終身學習,樂於迎接新的技術挑戰。

...
閱讀更多

準備開始了嗎?

Nuget Downloads 56,401版本:2026.9剛剛發布

即時獲取您的30天試用金鑰
無需信用卡或帳戶建立
C# PDF的NuGet程式庫
通過NuGet安裝

版本: 2026.9

PM > Install-Package IronWord
nuget.org/packages/IronWord/
  1. 在方案總覽中右鍵點擊引用,管理NuGet包
  2. 選擇Browse並搜尋“IronWord”
  3. 選擇套件並安裝
C# PDF DLL
下載DLL

版本: 2026.9

  1. 下載並解壓IronWord到如~/Libs的目錄中
  2. 在Visual Studio方案總覽中右鍵點擊引用。選擇Browse,“IronWord.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
預約您的免費現場演示
Booking Badge

全球數百萬工程師信賴

Iron Software的客戶標誌
獲取您的無義務諮詢
完成以下表單或發郵件至sales@ironsoftware.com
您的詳細資訊將始終保持機密。
全球數百萬工程師信賴
Iron Software的客戶標誌
立即獲取您的30天試用金鑰
無需信用卡或帳戶建立