내용으로 건너뛰기

AWS Step Functions에서 상태가 변경될 때 호출하도록 Lambda 함수를 설정하려면 어떻게 해야 합니까?

3분 분량
0

AWS Step Functions에서 상태가 변경될 때마다 AWS Lambda 함수를 호출하고 싶습니다. 어떻게 해야 하나요?

해결 방법

참고: 이 지침은 Amazon EventBridge 이벤트 규칙을 사용하여 Step Functions에서 상태가 변경될 때마다 Lambda 함수를 간접적으로 호출하는 방법을 설명합니다. 단계를 따를 때 다음을 수행해야 합니다.

  • Lambda 함수를 간접적으로 호출하는 데 사용하는 이벤트 변경이 지원되는 API 작업인지 확인합니다.
  • 동일한 AWS 리전에 Step Functions 상태 머신, Lambda 함수 및 EventBridge 이벤트 규칙을 생성합니다.

단계 함수 및 Lambda에 대한 IAM 역할 생성

1.    Step Functions에 대해 AWS Identity and Access Management(IAM) 역할을 생성합니다. IAM 역할을 생성할 때 다음을 수행하십시오.
사용 사례에 필요한 작업을 수행할 수 있는 권한을 IAM 역할에 부여합니다.
상태 머신이 Lambda 함수를 간접적으로 호출하도록 lambda:InvokeFunction 작업을 허용하십시오.
참고: 관리형 정책인 **AWSLambdaRole**에는 Lambda 함수를 간접적으로 호출하는 데 필요한 권한이 포함되어 있습니다.

2.    Amazon CloudWatch에 로그를 업로드할 수 있는 권한을 함수에 부여하는 Lambda 실행 역할을 생성합니다.
참고: 관리형 정책인 AWSLambdaBasicExecutionRole은 CloudWatch에 로그를 업로드할 수 있는 기본 권한을 함수에 부여합니다.

Step Functions 상태 머신 생성

Step Functions 콘솔에서 상태 머신을 생성합니다. 실행에 대한 IAM 역할의 경우 Step Functions용으로 생성한 기존 역할을 선택합니다.

자세한 내용은 AWS Step Functions란 무엇인가요?를 참조하십시오.

수신한 이벤트를 인쇄하도록 구성된 Lambda 함수를 생성

1.    Lambda 콘솔에서 함수를 생성합니다. 실행 역할에서 Lambda용으로 생성한 기존 역할을 선택합니다.

2.    Lambda 콘솔에서 코드 편집기를 사용하여 함수 코드를 업데이트하면 함수가 실행 시 수신한 이벤트를 인쇄합니다.

수신한 이벤트를 출력하도록 Lambda 함수에 지시하는 Python 코드의 예

import json

def lambda_handler(event, context):
print("Received event: " + json.dumps(event)) return {
'statusCode': 200,
'body': json.dumps("Hello")
}

자세한 내용은 Python을 사용하여 Lambda 함수 빌드를 참조하십시오.

Step Functions에서 상태가 변경될 때마다 Lambda 함수를 호출하는 EventBridge 이벤트 규칙을 생성합니다.

1.    EventBridge 콘솔을 엽니다.

2.    왼쪽 탐색 창의 이벤트에서 규칙을 선택합니다.

3.    규칙 생성을 선택합니다.

4.    이름에 규칙 이름을 입력합니다.

5.    패턴 정의에서 이벤트 패턴을 선택합니다.

6.    이벤트 매칭 패턴에서 서비스별 사전 정의된 패턴을 선택합니다.

7.    서비스 제공업체에서 AWS를 선택합니다.

8.    서비스 이름 에서 Step Functions를 선택합니다.

9.    이벤트 유형 에서 Step Functions 실행 상태 변경을 선택합니다.

참고: Step Functions에 대한 모든 이벤트가 규칙을 시작하도록 선택할 수도 있습니다. 또는 CloudTrail을 통한 AWS API 호출을 선택하여 StartExecution과 같은 특정 Step Functions API 직접 호출 이벤트에 대한 규칙을 시작할 수 있습니다 . 자세한 내용은 AWS 서비스의 이벤트를 참조하십시오.

10.    이벤트를 시작하려는 상태, 상태 머신 Amazon Resource Names(ARN) 및 실행 ARN을 선택합니다. 각 트리거 유형에 대해 Any를 선택하거나 각 트리거에 대한 특정 상태 또는 ARN을 식별할 수 있습니다.

11.    대상 선택에서 Lambda 함수가 대상 유형인지 확인합니다.

12.    함수에서 생성한 Lambda 함수를 선택합니다.

13.    규칙 생성을 선택합니다.

자세한 내용은 Amazon EventBridge 이벤트Step Functions에 대한 EventBridge의 실행 상태 변경을 참조하십시오.

설정 테스트

1.    Step Functions 콘솔에서 상태 머신의 새 실행을 시작합니다.

2.    CloudWatch 콘솔의 왼쪽 탐색 창에 있는 로그에서 로그 그룹을 선택합니다.

3.    Lambda 함수에서 생성한 로그 스트림을 선택합니다.

4.    로그 스트림에서 이벤트 세부 정보를 확인합니다.

참고: 새 실행이 시작된 후 로그 스트림이 나타나려면 몇 분이 걸릴 수 있습니다.


관련 정보

CloudWatch를 사용한 Step Functions 모니터링

Lambda를 사용하는 Step Functions 상태 머신 생성

AWS 공식업데이트됨 5년 전