C# .NET을 위한 Lambda 배포 패키지를 빌드하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2021년 9월 15일

C#에서 AWS Lambda 함수 배포 패키지를 생성했습니다. 그러나 함수를 호출하려고 할 때 Lambda가 ‘모듈을 찾을 수 없습니다’, ‘모듈을 로드할 수 없습니다’ 또는 ‘클래스를 찾을 수 없습니다’를 반환합니다. 이 문제를 해결하려면 어떻게 해야 합니까?

간략한 설명

C# Lambda 함수가 다음 오류 중 하나를 반환하면 함수의 배포 패키지의 폴더 구조가 올바르게 구성되지 않은 것입니다.

  • 모듈을 찾을 수 없음
  • 모듈을 로드할 수 없음
  • 클래스를 찾을 수 없음

이 문제를 해결하려면 올바른 폴더 구조를 가진 C# Lambda 함수 배포 패키지를 빌드해야 합니다. 올바른 폴더 구조를 사용하여 C# Lambda 함수 배포 패키지를 빌드하고 배포하는 방법에는 두 가지가 있습니다.

해결 방법

.NET 코어 CLI 및 Amazon.Lambda.Tools 확장 사용하기

1.    기본 Lambda .NET 템플릿을 설치한 후, 다음 명령을 실행하여 Amazon.Lambda.Tools 확장을 .NET Core CLI에 추가합니다.

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

2.    설치한 템플릿 중 하나를 사용하여 새 Lambda 함수를 생성하거나 기존 프로젝트에 Amazon.Lambda.Tools 확장을 추가합니다.

설치한 템플릿 중 하나를 사용하여 새 Lambda 함수 생성하기

Lambda 함수의 프로젝트 루트 디렉터리에 있는 .NET Core CLI에서 다음 명령을 실행합니다.

중요: {function-name}을(를) 함수 이름으로 바꿉니다. {aws-region}을(를) 함수가 들어가기 원하는 AWS 리전으로 바꿉니다.

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

기존 프로젝트에 Amazon.Lambda.Tools 확장을 추가하기

Lambda 함수의 프로젝트 루트 디렉터리에 있는 .NET Core CLI에서 다음 명령을 실행합니다.

dotnet tool install -g Amazon.Lambda.Tools

참고: Amazon.Lambda.Tools 확장에서 누락된 필수 파라미터를 제공하라는 메시지가 표시됩니다.

3.    다음 명령을 실행하여 배포 패키지의 종속 항목을 다운로드합니다.

중요: {your-function-directory}를 함수 디렉터리 이름으로 바꿉니다.

cd {your-function-directory}
dotnet restore

참고: 호환되지 않는 오류가 발생하는 경우 Lambda 도구와 호환되는.NET Core 버전을 사용하고 있는지 확인하세요. .NET Core 이전 버전을 다운로드하는 방법은 .NET 다운로드 아카이브 웹 사이트를 참조하세요.

4.    다음 명령을 실행하여 Lambda 배포 패키지를 빌드합니다.

dotnet lambda deploy-function

참고: 또는 Lambda 배포 패키지를 Scratch에서 빌드하여 별도로 배포할 수 있습니다. 지침은 .NET Core CLI를 사용하여 AWS Lambda 프로젝트 배포하기 단원을 참조하세요.

5.    .NET Core CLI가 함수 이름을 입력하고 AWS Identity and Access Management(IAM) 역할을 함수에 할당하라는 메시지를 표시합니다. 함수의 이름을 입력하고 그 함수에 IAM 역할을 할당합니다. 그런 다음 함수가 생성됩니다.

AWS Toolkit for Visual Studio 사용하기

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

2.    AWS Lambda Project(.NET Core) 프로젝트를 생성하고 빌드합니다. 지침은 AWS Toolkit for Visual Studio의 AWS Lambda 템플릿 사용하기 및 AWS Lambda 개발자 가이드의 AWS Toolkit for Visual Studio를 참조하세요.

중요: 함수 핸들러 서명이 다음 형식인지 확인하세요.

ASSEMBLY::TYPE::METHOD

함수가 올바른 형식인지 확인하기 위해 해당 함수의 ​src/{function-name} 디렉터리에 있는 파일을 점검하세요. 자세한 내용은 .NET Core CLIC#의 AWS Lambda 함수 핸들러를 참조하십시오.


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요하세요?