Kien이 C# .NET을 위한
Lambda 배포 패키지의
빌드 과정을 지원

kien

C#에서 AWS Lambda 함수를 생성했는데 호출 중 오류가 발생했습니다. 오류가 발생하지 않게 C# 배포 패키지를 빌드하려면 어떻게 해야 합니까? 어떤 방법을 선택할 수 있습니까?

C#에서 일반적인 Lambda 함수 오류는 "module not found(모듈을 찾을 수 없음)", "module cannot be loaded(모듈을 로드할 수 없음)" 또는 "cannot find class(클래스를 찾을 수 없음)"입니다. 이러한 오류가 발생하는 이유는 배포 패키지의 Lambda 서비스 폴더 구조가 잘못되어 모듈 및 라이브러리를 로드할 수 없기 때문입니다.​  

올바른 폴더 구조로 배포 패키지를 빌드하십시오.

Lambda용 C# 배포 패키지를 빌드 및 배포하는 방법은 크게 .NET Core CLI(명령줄 인터페이스)Amazon.Lambda.Tools 플러그인을 사용하는 방법 또는 AWS Toolkit for Visual Studio를 사용하는 방법, 두 가지입니다. 자세한 내용은 C#로 작성한 AWS Lambda 배포 패키지를 참조하십시오.

.NET Core CLI를 사용하여 패키지 빌드 및 배포

1.    기본 Lambda .NET 템플릿을 설치한 후 .NET Core CLI에 Amazon.Lambda.Tools 플러그인을 추가하려면 다음 명령을 실행하십시오.

dotnet new -i 'Amazon.Lambda.Templates::*'

2.    다음 중 하나를 수행합니다.

설치한 템플릿 중 하나를 사용하여 새 Lambda 함수를 생성하려면 다음 명령을 실행하십시오.

dotnet new lambda.EmptyFunction --name {function-name} --profile default --region {aws-region}

예를 들면 다음과 같습니다.

dotnet new lambda.EmptyFunction --name myFunction --profile default --region us-east-1

기존 프로젝트에 Amazon.Lambda.Tools를 추가하려면 해당 프로젝트의 2017 .csproj 파일에 다음 항목 그룹을 수동으로 추가하십시오.

<ItemGroup>
<DotNetCliToolReference Include="Amazon.Lambda.Tools" Version="{current-version}"></DotNetCliToolReference>
</ItemGroup>

참고: NuGet 웹 사이트에서 Amazon.Lambda.Tools의 현재 버전(예: "3.1.1")을 확인해야 합니다.

3.    모든 종속 항목을 다운로드하려면 다음 명령을 실행합니다.

cd {your-function-directory}
dotnet restore

예를 들면 다음과 같습니다.

cd myFunction\src\myFunction
dotnet restore

참고: "호환되지 않음" 오류가 나타나는 경우, Lambda 도구와 호환되는 .NET Core 버전을 설치했으며 CLI에서 그 버전을 사용 중인지 확인하십시오. 오래된 .NET Core 버전을 다운로드하는 방법은 .NET 다운로드 아카이브 웹 사이트를 참조하십시오.

4.    배포 패키지를 빌드하려면 다음 명령을 실행하십시오.

dotnet lambda deploy-function

5.    CLI에서 메시지가 나타나면 함수 이름을 입력하고 IAM 역할을 선택합니다. Lambda 함수가 생성됩니다.

AWS Toolkit for Visual Studio를 사용하여 패키지 빌드 및 배포

1.    AWS Toolkit for Visual Studio를 다운로드하여 설치합니다.

2.    AWS Lambda Project(.NET Core) 프로젝트를 생성하고 빌드합니다. 자세한 내용은 자습서: AWS Toolkit for Visual Studio에서 AWS Lambda 템플릿 사용프로젝트 생성 및 빌드를 참조하십시오.

함수 핸들러 서명 확인

Lambda 함수를 생성할 때 제공되는 핸들러 서명의 형식은 다음과 같습니다.

ASSEMBLY::TYPE::METHOD

예를 들면 다음과 같습니다.

myFunction::myFunction.Function::FunctionHandler

함수가 올바른 형식인지 확인하기 위해 해당 함수의 ​src/{function-name} 디렉터리에 있는 파일을 점검할 수 있습니다. 자세한 내용은 .NET Core CLI 및 핸들러 서명을 참조하십시오.


페이지 내용이 도움이 되었습니까? | 아니요

AWS 지원 지식 센터로 돌아가기

도움이 필요하십니까? AWS 지원 센터를 방문하십시오.

게시 날짜: 2018-12-27