
삭제했다, ~가 올라갔다)S3 -> Lambda -> DB
IoT -> Lambda -> SNS
블루프린트 사용 : 샘플 코드 및 구축 Lambda 애플리케이션을 위한 구성 사전 설정을 일반적인 사용 사례를 살펴봅니다. (여러 상황을 AWS가 세팅해놓은것)
Lambda가 이름이 Chabbo_lambdafunction-role-e41xhheh이고 Amazon CloudWatch Logs에 로그를 업로드할 수 있는 권한이 포함된 실행 역할을 생성합니다. -> cloud watch 연동 가능하다는 것!
기본으로 이렇게 Key1을 print해주는 간단 코드를 줍니다.
import json
print('Loading function')
def lambda_handler(event, context):
#print("Received event: " + json.dumps(event, indent=2))
print("value1 = " + event['key1'])
print("value2 = " + event['key2'])
print("value3 = " + event['key3'])
return event['key1'] # Echo back the first key value
#raise Exception('Something went wrong')
한번 테스트 이벤트를 발생시켜 테스트해봅니다.

저는 키값을 바꿔서 어떻게 뜨는지 확인해볼겁니당

실행결과 성공이고, key1인 "차"를 출력해줬습니다! 또한 얼마나 시간이 걸렸고 메모리, 리소스가 얼마나 사용됐는지 보여주네요
여기를 클릭해보면 
CloudWatch에서 로그가 실행된게 보이고 어떤 함수가 언제 발생됐는지도 다 확인할 수 있습니다! 캬
그리고 이번엔 코드에 에러를 발생시켜볼게욤
import json
print('Loading function')
def lambda_handler(event, context):
#print("Received event: " + json.dumps(event, indent=2))
print("value1 = " + event['key1'])
print("value2 = " + event['key2'])
print("value3 = " + event['key3'])
return event['key4'] # 이렇게 없는 값을 넣어줘봅니다
#raise Exception('Something went wrong')

배경부터 빨갛게 실패를 띄워주네요 KeyError 입니다. 맞죵



-S3에 PutObject가 발생하면 Lambda를 실행시켜보자.
Temperature 데이터 입력되는데, 해당 온도가 넘으면 경고 울려주기
S3에 접근할 수 있는 람다 만들기

S3가서 PUT 이벤트 만들기


람다 가서 연결 됐는지 확인

S3에 이상 데이터 넣어서 람다 확인

-> 클라우드 워치 로그에 코드가 실행된 것을 볼 수 있습니다! 와우
저는 궁금해서 Event를 print시켜봤는데여
{'Records': [{'eventVersion': '2.1',
'eventSource': 'aws:s3',
'awsRegion': 'ap-northeast-2',
'eventTime': '2022-11-06T12:41:08.786Z',
'eventName': 'ObjectCreated:Put',
'userIdentity':
{'principalId': 'A2FZT8T1FFNM16'},
'requestParameters':
{'sourceIPAddress': '220.82.40.31'},
'responseElements':
{'x-amz-request-id': 'Y02G7FQ3VDF25AZH',
'x-amz-id-2': 'Q1WslfdYezK8eCByKteSmKx2OrgCa2iLR74bzoYwLy5idwlZOYjohrdEUwEUXdBo+lrUxjb1T66TTpS27xMN24AnLsDhgS+9zw+3vVX8VNw='},
's3':
{'s3SchemaVersion': '1.0',
'configurationId': 'chabo_lambda_event',
'bucket':
{'name': 'cha-lambdatrig',
'ownerIdentity':
{'principalId': 'A2FZT8T1FFNM16'},
'arn': 'arn:aws:s3:::cha-lambdatrig'},
'object':
{'key': 'ex1.json',
'size': 21,
'eTag': '680b7998a0cfc13644db9d8a2c058ecf',
'sequencer': '006367AB64C08D4F8A'
}
}
}]}
이벤트 상황에대한 다양한 정보가 JSON형태로 들어있는 것을 볼 수 있습니다. 나중에 코드에서 상황을 불러올 때 해당 변수로 타고 들어가서 보면 될 것 같네요!

다양한 람다를 활용해봤는데, 상황에 맞춰서 코드를 짜는게 중요하다는 생각이 든ㄷㅏ!