brunch

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

이론, Cloud9 사용하기

by Master Seo

<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

만들기


70 step.png


2

서비스 > 람다

PrintVendorTriggerFuncti- 찾기


환경변수

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

저장하기


3

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

PrintVendorTriggerFuncti- 찾기

저장하기


감사합니다.

keyword
매거진의 이전글428. Storage Gateway