IRONSOFTWAREHOME

AWS Lambda에서 QR 코드를 읽고 쓰는 방법

Curtis Chau
Curtis Chau
Updated: 2026년 4월 22일

이 사용 설명서는 IronQR 사용하여 AWS Lambda 함수를 설정하는 방법에 대한 자세한 가이드를 제공합니다. 이 튜토리얼에서는 IronQR 구성하여 QR 코드를 S3 버킷에 직접 읽고 쓰는 방법을 알아봅니다.

설치

이 문서에서는 S3 버킷을 사용하므로 AWSSDK.S3 패키지가 필요합니다.

Start using IronQR 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(컨테이너 이미지)' 블루프린트를 선택한 다음 '완료'를 선택합니다.

컨테이너 이미지를 선택

패키지 종속성 추가

.NET 8용 IronQR 라이브러리는 추가적인 종속성 없이 AWS Lambda에서 작동합니다. 이를 구성하려면 아래와 같이 프로젝트의 Dockerfile을 수정하십시오.

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

# Install necessary packages and update repositories
RUN dnf update -y

WORKDIR /var/task

# This COPY command copies the .NET Lambda project's build artifacts from the host machine into the image. 
# The source of the COPY should match where the .NET Lambda project publishes its build artifacts. If the Lambda function is being built 
# with the AWS .NET Lambda Tooling, the `--docker-host-build-output-dir` switch controls where the .NET Lambda project
# will be built. The .NET Lambda project templates default to having `--docker-host-build-output-dir`
# set in the aws-lambda-tools-defaults.json file to "bin/Release/lambda-publish".
#
# Alternatively, Docker multi-stage build could be used to build the .NET Lambda project inside the image.
# For more information on this approach, check out the project's README.md file.
COPY "bin/Release/lambda-publish"  .
Text

함수 핸들러 코드를 수정하세요

이 예제는 QR 코드를 생성하고, S3 버킷에 업로드한 다음, 새로 생성된 QR 코드를 읽습니다.

파일 경로는 IronQrNuGet 디렉터리에 지정되어 있으며, 파일 이름으로는 전역 고유 식별자(GUID)가 사용됩니다. Write 메서드는 제공된 값을 기반으로 QR 코드를 생성하며, 결과 JPG 바이트 배열은 QR 코드를 읽기 위해 Read 메서드로 전달됩니다. 이는 해당 AWS Lambda 함수가 QR 코드를 읽을 수 있음을 보여줍니다.

using Amazon.Lambda.Core;
using Amazon.S3;
using Amazon.S3.Model;
using IronQr;

// 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 IronQrNuGetAwsLambda
{
    public class Function
    {
        private static readonly IAmazonS3 _s3Client = new AmazonS3Client(Amazon.RegionEndpoint.APSoutheast1);

        /// <summary>
        /// Main handler for AWS Lambda
        /// </summary>
        /// <param name="context">The ILambdaContext that provides methods for logging and describing the Lambda environment.</param>
        /// <returns></returns>
        public async Task FunctionHandler(ILambdaContext context)
        {
            // Set the license key for IronQR
            IronQr.License.LicenseKey = "IronQR-MYLICENSE-KEY-1EF01";

            string bucketName = "deploymenttestbucket";
            string objectKey = $"IronQrNuGet/{Guid.NewGuid()}.png";

            try
            {
                // Create a QR code with the content "12345"
                var myQr = QrWriter.Write("12345");

                context.Logger.LogLine("QR created.");

                // Upload the JPG to S3
                await UploadJpgToS3Async(bucketName, objectKey, myQr.Save().ExportBytesAsJpg());

                context.Logger.LogLine($"QR uploaded successfully to {bucketName}/{objectKey}");

                // Read the QR code
                QrImageInput imageInput = new QrImageInput(myQr.Save());
                QrReader reader = new QrReader();
                var resultFromByte = reader.Read(imageInput);

                foreach (var item in resultFromByte)
                {
                    // Log the read value
                    context.Logger.LogLine($"QR value is = {item.Value}");
                }
            }
            catch (Exception e)
            {
                context.Logger.LogLine($"[ERROR] FunctionHandler: {e.Message}");
            }
        }

        // Function to upload the JPG file to S3
        private async Task UploadJpgToS3Async(string bucketName, string objectKey, byte[] jpgBytes)
        {
            using (var memoryStream = new MemoryStream(jpgBytes))
            {
                var request = new PutObjectRequest
                {
                    BucketName = bucketName,
                    Key = objectKey,
                    InputStream = memoryStream,
                    ContentType = "image/jpg",
                };

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

메모리 및 타임아웃 증가

Lambda 함수에 할당되는 메모리 양은 문서 크기와 동시에 처리되는 문서 수에 따라 달라집니다. 시작점으로 aws-lambda-tools-defaults.json에서 메모리를 512 MB로 설정하고 타임아웃을 300초로 설정합니다.

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

메모리가 부족하면 프로그램에서 '런타임이 오류와 함께 종료되었습니다: 신호: killed.'라는 오류 메시지가 표시됩니다. 메모리 크기를 늘리면 이 문제를 해결하는 데 도움이 될 수 있습니다. 자세한 내용은 문제 해결 문서 " AWS Lambda - 런타임 종료 신호: 종료됨" 을 참조하세요.

게시

Visual Studio에서 프로젝트를 게시하려면 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 'AWS Lambda에 게시...'를 선택한 다음 필요한 설정을 구성하면 됩니다. 더 자세한 내용은 AWS 웹사이트를 방문하세요.

한번 시도해 보세요!

Lambda 함수는 Lambda 콘솔 또는 Visual Studio를 통해 활성화할 수 있습니다.

자주 묻는 질문

AWS Lambda에서 실행되는 C# 프로젝트에 QR 코드 라이브러리를 통합하려면 어떻게 해야 하나요?

IronQR과 같은 QR 코드 라이브러리를 AWS Lambda의 C# 프로젝트에 통합하려면 IronQR 라이브러리를 다운로드하고, Visual Studio를 사용하여 컨테이너화된 AWS Lambda 프로젝트를 생성한 다음, QR 코드 작업을 지원하도록 환경을 구성하면 됩니다.

AWS Lambda에서 IronQR을 구성하는 단계는 무엇입니까?

Visual Studio에서 컨테이너화된 프로젝트 템플릿을 설정하고, Dockerfile을 수정하고, FunctionHandler를 업데이트하고, 메모리 및 시간 초과 설정을 조정하여 원활한 작동을 보장함으로써 AWS Lambda용 IronQR을 구성하십시오.

C# 라이브러리를 사용하여 AWS S3에서 QR 코드를 관리하는 방법은 무엇인가요?

IronQR을 사용하면 AWS S3 버킷에 QR 코드를 생성, 업로드 및 읽어 관리하고, S3 버킷 관련 작업을 처리할 수 있습니다. 이를 위해서는 IronQR 라이브러리와 AWSSDK.S3 패키지를 함께 사용해야 합니다.

IronQR을 사용하는 AWS Lambda 함수의 성능이 좋지 않으면 어떻게 해야 하나요?

AWS Lambda 함수의 성능이 저하되는 경우, aws-lambda-tools-defaults.json 파일에서 메모리 및 타임아웃 설정을 늘려 함수에 더 많은 리소스를 할당하는 것을 고려해 보세요.

C# Lambda 함수를 AWS에 배포하려면 어떻게 해야 하나요?

Visual Studio의 'AWS Lambda에 게시...' 옵션을 사용하고 필요한 설정을 구성한 다음 AWS Toolkit을 활용하여 C# Lambda 함수를 AWS에 배포합니다.

Visual Studio에서 AWS Lambda 함수를 테스트할 수 있나요?

예, Visual Studio에서 AWS 툴킷을 사용하여 AWS Lambda 함수를 호출하고 개발 환경 내에서 직접 출력을 확인하여 AWS Lambda 함수를 테스트할 수 있습니다.

AWS Lambda 함수의 메모리 문제를 어떻게 해결할 수 있나요?

메모리 문제를 해결하려면 aws-lambda-tools-defaults.json 파일에서 함수의 메모리 할당량을 늘리고 재배포 후 함수의 성능을 모니터링하십시오.

AWS Lambda 프로젝트에서 Dockerfile을 수정하는 것이 중요한 이유는 무엇인가요?

AWS Lambda 프로젝트에서 Dockerfile을 수정하는 것은 환경을 올바르게 설정하는 데 매우 중요하며, 여기에는 리포지토리 업데이트 및 함수가 제대로 실행되는 데 필요한 빌드 아티팩트 복사가 포함됩니다.

AWS Lambda 함수가 QR 코드 작업을 효율적으로 처리하도록 하려면 어떻게 해야 할까요?

AWS Lambda 함수가 QR 코드 작업을 효율적으로 처리하도록 하려면 메모리 및 타임아웃 설정을 최적화하고, IronQR과 같은 적절한 라이브러리를 사용하며, Dockerfile과 프로젝트 설정을 올바르게 구성해야 합니다.

AWS Lambda에서 QR 코드 생성 및 검색을 자동화할 수 있을까요?

네, IronQR 라이브러리를 사용하면 AWS Lambda에서 QR 코드 생성 및 검색을 자동화할 수 있습니다. 이 라이브러리를 사용하면 QR 코드를 프로그래밍 방식으로 생성하고, S3에 업로드하고, 필요에 따라 다시 읽어올 수 있습니다.

Curtis Chau
기술 문서 작성자

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.

...
더 읽어보기

시작할 준비 되셨나요?

Nuget Downloads 74,386버전:2026.9방금 출시

지금 바로 30일 무료 체험판 키를 받으세요.
신용카드나 계정 생성은 필요하지 않습니다.
PDF용 C# NuGet 라이브러리
NuGet을 사용하여 설치하세요

버전: 2026.9

PM > Install-Package IronQR
nuget.org/packages/IronQR/
  1. 솔루션 탐색기에서 참조를 마우스 오른쪽 버튼으로 클릭하고 NuGet 패키지 관리를 선택합니다.
  2. 찾아보기를 선택하고 "IronQR"을 검색하세요.
  3. 패키지를 선택하고 설치하세요
C# PDF DLL
DLL 다운로드

버전: 2026.9

  1. IronQR을 다운로드하고 솔루션 디렉터리 내의 ~/Libs와 같은 위치에 압축을 푸세요.
  2. Visual Studio 솔루션 탐색기에서 참조를 마우스 오른쪽 버튼으로 클릭합니다. 찾아보기를 선택하고 "IronQR.dll"을 선택합니다.

라이선스 가격은 749달러 부터 시작합니다.

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일 무료 체험판 키를 받으세요.
신용카드나 계정 생성은 필요하지 않습니다.