한번 해보기
람다 함수 만들기 - 총3개의 람다 함수를 만든다.
- 숫자를 입력 받았을 때 짝수, 홀수 판단하는 함수(determine_number)
- 짝수 메시지 출력 함수(even_number)
- 홀수 메시지 출력 함수(odd_number)
determine_number : 짝수 홀수 판단 람다 함수 작성하기
event가 JSON으로 들어오면 number 값을 찾아서 짝수 홀수를 판단하고 result와 number를 return한다.
import json
def lambda_handler(event, context):
number = event['number']
if number % 2 == 0:
return {
'result': 'even',
'number': number
}
else:
return {
'result': 'odd',
'number': number
}
짝수 홀수 테스트 이벤트 만들기
deploy하고 테스트 실행
1을 입력값으로 주었기 때문에 odd라는 결과와 number를 출력한다.
even_number : 짝수 메시지 출력 함수 만들기
event가 들어오면 number 값을 찾아 message에 넣고 출력한다.
import json
def lambda_handler(event, context):
return {
'message': f"{event['number']} is an even number"
}
위와 같은 test 이벤트를 만들었을 때 숫자를 입력값으로 받아 문장을 출력한다.
odd_number : 홀수 메시지 출력 함수 만들기
event가 들어오면 number 값을 찾아 message에 넣고 출력한다.
import json
def lambda_handler(event, context):
return {
'message': f"{event['number']} is an odd number"
}
짝수 함수와 같이 숫자를 입력 받아 문장으로 결과를 출력한다.
총 3개의 다 함수를 생성 완료
Step Functions 만들기
Step Functions -> 상태 머신 -> 상태 머신 생성
템플릿은 Blank를 선택한다.
설계를 보면 start - end만 있고 중간이 비어 있는데 이 중간을 채워야 한다.
먼저 빈 중간에 작업 - AWS Lambda를 끌어다 놓는다.
끌어다 놓은 람다 함수를 더블 클릭하면 오른쪽에 창이 열린다.
상태 이름을 입력하고 API 파라미터에서 아까 생성한 determine_number 람다 함수를 선택한다.
그 후 흐름 -> Choice를 람다 함수 밑에 놓는다.
Choice도 더블클릭해서 구성을 변경한다.
Choice -> 구성 -> Choice Rules -> Rule #1 수정 -> Add conditions
$.result라는 변수가 들어왔을 때 value가 "even"일 경우를 설정한다.
Choice Rules에는 현재 2가지 rule이 있어서 rule #1에 해당하지 않으면 자동으로 default rule로 전달된다.
(if문의 else와 같다.)
굳이 따로 설정할 필요가 없다.
다시 왼쪽에 있는 작업 -> Lambda 함수 2개를 끌어다 choice 밑에 배치한다.
왼쪽 람다 함수에는 Even Number라는 상태 이름을 입력하고 API 파라미터에 even_number 람다 함수를 선택한다.
같은 방식으로 오른쪽 람다 함수도 odd_number 람다 함수를 선택한다.
설계가 다 끝난 후 코드탭을 보면 지금까지 작업한 내용이 모두 코드로 작성되어 있다.
마지막으로 구성탭에서 step functions 이름 및 역할을 생성한다.
역할의 경우 Lambda, X-ray 권한이 필요하기 때문에 해당 권한을 갖고 있는 역할을 자동 생성한다.
Step Functions 실행 해보기
step functions -> 상태 머신에서 생성된 step function을 선택하고 실행 시작을 누른다.
이름을 정해주고 람다 함수를 테스트했던 것과 같이 JSON 형식으로 입력한다.
{
"number": 1
}
그 후 실행 시작을 누르면 끝까지 실행되는 것을 볼 수 있다.
설정한 step의 입, 출력값을 확인할 수 있다.
최종적으로 "message": "1 is an odd number" 메시지가 출력된 것을 볼 수 있다.
'배운 내용 > AWS(아마존 웹 서비스)' 카테고리의 다른 글
aws ecr, docker login 로그인, ecr repository 생성 (0) | 2024.07.01 |
---|---|
[AWS] vpc flow log (0) | 2024.05.20 |
AWS Lambda + DynamoDB (0) | 2024.05.09 |
AWS Lambda+S3 (0) | 2024.05.08 |
AWS EFS (0) | 2024.05.08 |