brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Aug 02. 2020

429. 서버리스로 어플리케이션 만들기

이론, Cloud9 사용하기

<1> 구성확인

<2> 람다 생성

<3>  API GateWay

<4> 이미지 올리기


<5>  SNS로  Email 수신 하기

<6> 디지털 앨범 만들기

<7> 확인하기




<1> 구성확인


구성1

사용자 ---   API GateWay -------람다 ----- 다이나모 DB  


구성2

사용자 ---   API GateWay -------람다 ----- AWS 스텝 함수  ----------- SQS / SNS 


구성3

사용자 ----   S3 ----- AWS 스텝 함수 --------  SQS / SNS 




구성1

사용자 ---   API GateWay -------람다 ----- 다이나모 DB  


람다부터 생성한다.

API Gateway는 이벤트로 존재한다.

람다는 다이나모 DB로 넣는다.



<2> 람다 생성


1

서비스 > 람다 >   함수생성 > 새로 작성

seo-function1

파이썬 3.8  >  존재하는 롤  밴앤드 람다 함수 >   함수 만들기

// 백앤드-role


2

 람다 > 작업  >   S3 로부터 업로드  // 별도 코드 필요

https://us-west-2-aws-training.s3.us-west-2.amazonaws.com/awsu-spl/spl-254/1.0.2.prod/scripts/lambda-functions/presigned-lambda.zip


3

환경 변수> 편집 > 환경 변수 추가

imageMetadataTableName

값  // 이미지 메타 테이블

qls-16459391-13e8bf7fd5833144-ImageMetadataDDBTable-1J9SIPHCACFQS

s3BucketName

qls-16459391-13e8bf7fd5833144-userimagess3bucket-rr7z36r3xfdo

저장


4

기본 설정

30초

저장




<3> API GateWay


1

서비스 >  API GateWay  >   xxxxxxx--API >      작업     >  리소스 생성하기

리소스 이름

presigned

/presigned  (자동 생성)

> 리소스 생성


2

/presigned  선택  > 작업  > 메소드 생성  > POST 

/presigned - POST - 설정 >  람다함수

람다 프록시 통합 사용 체크하기

람다함수

seo-function1

저장


3

작업 > API 배포하기  > stage 선택  > 배포하기


4.

스테이지에서  URL 호출 링크  복사하기

https://13ixvq4q8a.execute-api.us-west-2.amazonaws.com/stage






<4>  이미지 올리기


1

서비스 > 클라우드9  >  Open IDE


2

cd ~/environment

wget https://us-west-2-aws-training.s3-us-west-2.amazonaws.com/awsu-spl-dev/spl-254/1.0.0.dev/scripts/sample-images.zip

unzip sample-images.zip

cd sample-images 


3

curl -d '{"userName":"(USER NAME)","albumName":"(ALBUM NAME)","message":"(CUSTOM MESSAGE)","numberOfImages":"(INTEGER VALUE)"}' -H "Content-Type: application/json" -X POST  https://13ixvq4q8a.execute-api.us-west-2.amazonaws.com/stage | python -m json.tool 



4

올리기

curl -X PUT -T (PATH_TO_IMAGE_NAME) "(PRE_SIGNED_URL)" 


curl -X PUT -T backlit-bonding-casual.jpg  "https://13ixvq4q8a.execute-api.us-west-2.amazonaws.com/stage



4

서비스 > S3  >   이미지 s3 버킷

확인




<5> SNS로  Email 수신 하기


1

서비스 > SNS > 주제  > 선택 > 구독 생성 >  이메일 > 



<6>  디지털 앨범 만들기


1

cloud9 에서


curl -d '{"userName":"(USER NAME)","albumName":"(ALBUM NAME)"}' -H "Content-Type: application/json" -X POST \ (CreateBookBindingUrl) 


curl -d '{"userName":"(USER NAME)","albumName":"(ALBUM NAME)"}' -H "Content-Type: application/json" -X POST \ https://13ixvq4q8a.execute-api.us-west-2.amazonaws.com/stage/bookprint



2

서비스 > S3


3

서비스 > Step Functions 

// role   필요  Lambda  / SQS   


4

서비스  >  SQS





<7>   확인하기


1

서비스 >  Step Functions  >   상태 머신 생성 >  표준  > 

// 정의 함수 입력 

// Printvendor lambda arn 수정하기

다음 > 


만들기

BookprintStateMachine

만들기



2

서비스 > 람다  

PrintVendorTriggerFuncti-   찾기


환경변수

https://13ixvq4q8a.execute-api.us-west-2.amazonaws.com/stage/bookprint

저장하기


3

서비스   > SQS   > sqs  선택  > 람다 함수 트리거 구성  >

PrintVendorTriggerFuncti-   찾기

저장하기


감사합니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari