로컬 환경에서 AWS Lambda 준비(AWS-SAM 설치)

2936 단어 5람다samAWS

이전



lambda를 구현해야 하고, 로컬에서 프로그램을 테스트할 수 없는지 조사한 결과, AWS SAM을 사용하여 검증하기 때문에 설정 방법을 써 갑니다.

전제 조건



Docker가 필요합니다.
+ 이번 lambda에서 go 언어를 시도하므로 go 설치도 필요합니다.

검증 환경



OS:Windows 10 Pro 64bit ver 1909
도커 버전 19.03.12
언어 환경: go version go1.14.1

SAM으로 구축하는 검증 환경에 대해



AWS-SAM을 설치하면 다음과 같은 환경을 로컬로 만들 수 있습니다.



로컬로 가상 API GaweWay를 만들어 거기에서 Lambda 함수를 실행하는 형태입니다.
런타임에 json을 전달하면 이벤트 발화시의 동작도 확인할 수 있습니다.

lambda 함수가 실행되면 docker 컨테이너가 시작되고 함수가 실행됩니다. 따라서 docker 설치가 필요합니다.

SAM 설치



AWS SAM CLI 설치
위 링크에서 AWS-SAM CLI를 다운로드하여 설치합니다.

SAM을 API GwateWay를 통해 실행



튜토리얼
공식 튜토리얼을 참고로 Hello-would를 실행합니다.

1. 템플릿에서 애플리케이션 만들기
Which template source would you like to use?
        1 - AWS Quick Start Templates
        2 - Custom Template Location
Choice: 1
What package type would you like to use?
        1 - Zip (artifact is a zip uploaded to S3)
        2 - Image (artifact is an image uploaded to an ECR image repository)
Package type: 1
Which runtime would you like to use?
        4 - go1.x
Runtime: 4
Project name [sam-app]: Hello-Would
AWS quick start application templates:
        1 - Hello World Example
        2 - Step Functions Sample App (Stock Trader)
Template selection: 1

2. 애플리케이션 빌드
cd .\Hello-Would\
sam build       //アプリケーションのビルド

3. 애플리케이션 실행

먼저 로컬에서 API Gateway를 시작하고 API를 치면 lamda가 실행됩니다.
sam local start-api   //Gatewayの起動
> C:\Windows\System32\curl.exe http://127.0.0.1:3000/hello
Hello, (IPアドレス)

(참고) Windows 10에서 curl 실행

windows10 ver 1803 이후에는 표준 curl 도구가 있으므로 그곳을 사용하여 테스트합니다.
ディレクトリ
C:\Windows\System32
C:\Windows\System32\curl.exe http://127.0.0.1:3000/hello

위에서 실행할 수있었습니다.
lambda가 호출되면 docker image가 시작되므로 처음이나 환경에 따라 시간이 걸립니다.
GawteWay를 시작하지 않고 직접 실행할 때 프로젝트 폴더에서
sam local invoke

에서 실행할 수 있습니다.

감상



AWS-CLI도 설치하여 생성한 함수를 배포할 수 있습니다.
런타임에 정확히 다른 로컬 컨테이너에 연결할 때 docker network를 지정해야합니다 (컨테이너의 DB에 액세스하는 경우).
이벤트시 환경 변수를 json으로 설정할 수 있습니다.
그쪽도 다른 기사로 하려고 합니다.

lambda 함수를 작성하는데 로컬로 실행 환경이 있는 편이 편리합니다만, 의외로 기사가 없었기 때문에 작성했습니다.

누군가의 도움이 되어서 다행입니다.
고마워요.

좋은 웹페이지 즐겨찾기