Lambda 지속성 함수 생성
Lambda 지속성 함수를 시작하려면 Lambda 콘솔을 사용하여 지속성 함수를 생성합니다. 몇 분 안에 단계와 대기를 사용하여 체크포인트 기반 실행을 시연하는 지속성 함수를 생성하고 배포할 수 있습니다.
자습서를 따라 진행하면서 DurableContext 객체를 사용하고, 단계를 따라 체크포인트를 생성하고, 대기를 통해 실행을 일시 중지하는 방법과 같은 기본적인 지속성 함수 개념을 학습합니다. 또한 대기 후 함수가 재개될 때 재생이 작동하는 방식도 알아봅니다.
작업을 단순화하려면 Python 또는 Node.js 런타임을 사용하여 함수를 생성하세요. 이러한 해석된 언어를 사용하면 콘솔의 기본 제공 코드 편집기에서 함수 코드를 직접 편집할 수 있습니다.
작은 정보
서버리스 솔루션을 빌드하는 방법을 알아보려면 서버리스 개발자 안내서를 확인하세요.
사전 조건
AWS 계정이 없는 경우 다음 절차에 따라 계정을 생성합니다.
AWS 계정에 가입하려면
https://portal.aws.amazon.com/billing/signup
을 엽니다. 온라인 지침을 따릅니다.
등록 절차 중 전화 또는 텍스트 메시지를 받고 전화 키패드로 확인 코드를 입력하는 과정이 있습니다.
AWS 계정에 가입하면 AWS 계정 루트 사용자가 생성됩니다. 루트 사용자에게는 계정의 모든 AWS 서비스 및 리소스에 액세스할 권한이 있습니다. 보안 모범 사례는 사용자에게 관리 액세스 권한을 할당하고, 루트 사용자만 사용하여 루트 사용자 액세스 권한이 필요한 작업을 수행하는 것입니다.
가입 프로세스가 완료되면 AWS은 사용자에게 확인 이메일을 전송합니다. 언제든지 https://aws.amazon.com/
AWS 계정에 가입하고 AWS 계정 루트 사용자에 보안 조치를 한 다음, AWS IAM Identity Center을 활성화하고 일상적인 작업에 루트 사용자를 사용하지 않도록 관리 사용자를 생성합니다.
AWS 계정 루트 사용자 보호
-
루트 사용자를 선택하고 AWS 계정 이메일 주소를 입력하여 AWS Management 콘솔
에 계정 소유자로 로그인합니다. 다음 페이지에서 비밀번호를 입력합니다. 루트 사용자를 사용하여 로그인하는 데 도움이 필요하면 AWS 로그인 사용 설명서의 루트 사용자로 로그인을 참조하세요.
-
루트 사용자의 다중 인증(MFA)을 활성화합니다.
지침은 IAM 사용자 안내서의 AWS 계정 루트 사용자용 가상 MFA 디바이스 활성화(콘솔)를 참조하세요.
관리자 액세스 권한이 있는 사용자 생성
-
IAM Identity Center를 활성화합니다.
지침은 AWS IAM Identity Center 사용자 안내서의 AWS IAM Identity Center 설정을 참조하세요.
-
IAM Identity Center에서 사용자에게 관리 액세스 권한을 부여합니다.
IAM Identity Center 디렉터리를 ID 소스로 사용하는 방법에 대한 자습서는 AWS IAM Identity Center 사용자 안내서의 기본 IAM Identity Center 디렉터리로 사용자 액세스 구성을 참조하세요.
관리 액세스 권한이 있는 사용자로 로그인
-
IAM IDentity Center 사용자로 로그인하려면 IAM Identity Center 사용자를 생성할 때 이메일 주소로 전송된 로그인 URL을 사용합니다.
IAM Identity Center 사용자로 로그인하는 데 도움이 필요한 경우 AWS 로그인 사용 설명서의 Signing in to the AWS access portal을 참조하세요.
추가 사용자에게 액세스 권한 할당
-
IAM Identity Center에서 최소 권한 적용 모범 사례를 따르는 권한 세트를 생성합니다.
지침은 Create a permission set에 대한 지침은 AWS IAM Identity Center사용 설명서에서 참조하세요.
-
사용자를 그룹에 할당하고, 그룹에 Single Sign-On 액세스 권한을 할당합니다.
지침은 AWS IAM Identity Center 사용 설명서의 Add groups를 참조하세요.
콘솔로 Lambda 지속성 함수 생성
이 예제에서는 지속성 함수가 자동 체크포인트 지정을 사용하여 여러 단계를 통해 주문을 처리합니다. 함수는 주문 ID가 포함된 JSON 객체를 가져와 주문을 검증하고, 결제를 처리하고, 주문을 확인합니다. 각 단계는 자동으로 체크포인트가 지정되므로 함수가 중단되면 마지막으로 완료된 단계부터 재개됩니다.
또한 함수에서는 대기 작업을 보여주며, 외부 확인 대기를 시뮬레이션하기 위해 잠시 동안 실행을 일시 중지합니다.
콘솔을 사용하여 지속성 함수 생성
Lambda 콘솔의 함수 페이지
를 엽니다. -
함수 생성을 선택합니다.
-
새로 작성을 선택합니다.
-
기본 정보 창의 함수 이름에
을 입력하세요.myDurableFunction -
런타임에서 Node.js 24 또는 Python 3.14을 선택합니다.
-
지속성 실행 활성화를 선택합니다.
Lambda는 체크포인트 작업(lambda:CheckpointDurableExecutions 및 lambda:GetDurableExecutionState)에 대한 권한이 포함된 실행 역할을 사용하여 지속성 함수를 생성합니다.
참고
Lambda 런타임에는 지속성 실행 SDK가 포함되어 있으므로 종속성을 패키징하지 않고도 지속성 함수를 테스트할 수 있습니다. 하지만 프로덕션용 배포 패키지에는 SDK를 포함하는 것이 좋습니다. 이를 통해 버전 일관성이 보장되고 함수에 영향을 미칠 수 있는 잠재적 런타임 업데이트를 방지할 수 있습니다.
콘솔에 내장된 코드 편집기를 사용하여 지속성 함수 코드를 추가합니다.
콘솔 코드 편집기를 사용하여 지속성 함수 간접 호출
지속성 함수는 간접 호출에 정규화된 ARN이 필요합니다. 지속성 함수를 간접 호출하기 전에 버전을 게시합니다.
함수의 버전 게시
-
버전 탭을 선택합니다.
-
[새 버전 발행]을 선택합니다.
-
버전 설명에
Initial version(선택 사항)을 입력합니다. -
게시를 선택합니다.
-
Lambda는 함수 버전 1을 생성합니다. 이제 함수 ARN의 끝에
:1이 포함되어 버전 1임을 나타냅니다.
이제 함수로 전송할 테스트 이벤트를 생성합니다. 이벤트는 주문 ID가 포함된 JSON 형식의 문서입니다.
테스트 이벤트 생성
-
콘솔 코드 편집기의 테스트 이벤트 섹션에서 테스트 이벤트 생성을 선택하세요.
-
Event Name(이벤트 이름)에
myTestEvent를 입력합니다. -
이벤트 JSON 섹션에서 기본 JSON을 다음으로 바꾸세요.
{ "orderId": "order-12345" } -
저장을 선택합니다.
지속성 함수 테스트 및 실행 보기
콘솔 코드 편집기의 테스트 이벤트 섹션에서 테스트 이벤트 옆에 있는 실행 아이콘을 선택하세요.
지속성 함수 실행이 시작됩니다. 10초 대기가 포함되므로 최초 간접 호출이 빠르게 완료되고, 대기 기간 후에 함수가 재개됩니다. 실행 진행 상황은 지속성 실행 탭에서 확인할 수 있습니다.
지속성 함수 실행 보기
-
지속성 실행 탭을 선택합니다.
-
목록에서 실행을 찾습니다. 실행에 현재 상태(실행 중, 성공 또는 실패)가 표시됩니다.
-
실행 ID를 선택하여 다음을 포함한 세부 정보를 확인합니다.
각 단계가 완료된 시간을 보여주는 실행 타임라인
체크포인트 내역
대기 기간
단계 결과
CloudWatch Logs에서 함수의 로그를 보고 각 단계의 콘솔 출력을 볼 수도 있습니다.
CloudWatch Logs에서 함수의 간접 호출 레코드 보기
-
CloudWatch 콘솔에서 로그 그룹 페이지
를 엽니다. -
함수에 대한 로그 그룹(
/aws/lambda/myDurableFunction)을 선택합니다. -
아래로 스크롤하고 확인하고자 하는 함수 간접 호출의 로그 스트림을 선택합니다.
최초 실행 및 대기 후 재생을 포함하여 함수의 각 간접 호출에 대한 로그 항목이 표시될 것입니다.
정리
지속성 함수 예제를 사용한 작업을 마치면 해당 함수를 삭제합니다. 함수의 로그를 저장하는 로그 그룹과 콘솔에서 생성된 실행 역할을 삭제할 수도 있습니다.
Lambda 함수를 삭제하려면
-
Lambda 콘솔의 함수 페이지
를 엽니다. -
생성한 함수를 선택합니다.
-
작업, 삭제를 선택합니다.
-
텍스트 입력 필드에
confirm를 입력하고 Delete(삭제)를 선택합니다.
로그 그룹 삭제
-
CloudWatch 콘솔에서 로그 그룹 페이지
를 엽니다. -
함수의 로그 그룹(
/aws/lambda/myDurableFunction)을 선택합니다. -
작업(Actions), 로그 그룹 삭제(Delete log group(s))를 선택합니다.
-
로그 그룹 삭제(Delete log group(s)) 대화 상자에서 삭제(Delete)를 선택합니다.
실행 역할을 삭제하려면
-
AWS Identity and Access Management(IAM) 콘솔의 역할 페이지
를 엽니다. -
함수의 실행 역할(예:
myDurableFunction-role-)을 선택합니다.31exxmpl -
삭제를 선택합니다.
-
역할 삭제 대화 상자에 역할 이름을 입력하고 삭제를 선택하세요.
추가 리소스 및 다음 단계
콘솔을 사용하여 간단한 지속성 함수를 생성하고 테스트했으니, 이제 다음 단계를 수행합니다.
-
분산 트랜잭션, 주문 처리, 인적 검토 워크플로 등 지속성 함수의 일반적인 사용 사례에 대해 알아봅니다. 예제를 참조하세요.
-
CloudWatch 지표 및 실행 내역을 사용하여 지속성 함수 실행을 모니터링하는 방법을 이해합니다. 모니터링 및 디버깅을 참조하세요.
-
지속성 함수를 동기식 및 비동기식으로 간접 호출하고, 장기 실행을 관리하는 방법을 알아봅니다. 지속성 함수 간접 호출을 참조하세요.
-
결정론적 코드 작성, 체크포인트 크기 관리, 비용 최적화 모범 사례를 따릅니다. 모범 사례를 참조하세요.
-
로컬 및 클라우드에서 지속성 함수를 테스트하는 방법을 알아봅니다. 지속성 함수 테스트를 참조하세요.