AWS SAM CLI를 사용하여 AWS Lambda 간에 Typescript 코드 공유
4346 단어 nodetypescriptserverlessaws
소개
최근 Amazon은 AWS SAM CLI with the support of Typescript의 베타 버전을 출시했습니다.
간단한 사용 사례가 있는 경우 샘플이 잘 작동합니다.
이제 리포지토리에 여러 AWS Lambda가 있고 코드를 공유해야 한다고 상상해 보십시오.
이 게시물의 목표는 SAM CLI를 계속 사용하여 Typescript 코드를 빌드하고 배포하는 것입니다.
기본 구성
기본적으로 CodeUri 속성은 함수 폴더만 참조한다는 것을 알 수 있습니다.
HelloWorldFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: hello-world/
Handler: app.lambdaHandler
Runtime: nodejs16.x
코드는 다음과 같습니다.
import type { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda';
import { helloWorld } from '../shared/hello';
export const lambdaHandler = async (event: APIGatewayProxyEvent): Promise<APIGatewayProxyResult> => {
return {
statusCode: 200,
body: JSON.stringify({
message: helloWorld,
}),
};
};
현재 디렉터리의 일부가 아닌 가져오기로 빌드하려고 하면 다음 오류가 발생합니다.
Build Failed
Error: NodejsNpmEsbuildBuilder:EsbuildBundle - Esbuild Failed: ✘ [ERROR] Could not resolve "../shared/hello"app.ts:2:27:
2 │ import { helloWorld } from '../shared/hello';
맞춤 구성
CodeUri 속성을 공유하려는 모든 소스 파일이 포함된 폴더로 변경해야 합니다.
HelloWorldFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: .
Handler: app.lambdaHandler
이 구성 덕분에 이제 여러 AWS Lambda 간에 코드를 공유할 수 있습니다.
기본적으로 AWS SAM CLI는 번들링, 트리 쉐이킹 및 축소를 사용하므로 AWS Lambda에서 호출되지 않은 코드는 배포되지 않습니다.
이 샘플에서 직접 코드를 볼 수 있습니다. https://github.com/faridz974/sam-typescript
결론
Typescript를 지원하는 AWS SAM CLI는 아직 베타 버전입니다. 고급 기능을 원하면 사용하지 않는 것이 좋습니다.
최근에 버전 1.49.0
External
및 Loader
속성이 추가되었습니다.피드백 및/또는 요청을 공유하려는 경우this issue 가 생성되었습니다.
Reference
이 문제에 관하여(AWS SAM CLI를 사용하여 AWS Lambda 간에 Typescript 코드 공유), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/faridz974/sharing-typescript-code-between-aws-lambda-with-aws-sam-cli-39el텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)