Lambda 함수 간접 호출 - Amazon Connect

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Lambda 함수 간접 호출

1단계: Lambda 함수 생성

캠페인 실행 중에 아웃바운드 캠페인은 프로필 배치로 Lambda 함수를 호출하고 각각에 대한 결과가 포함된 응답을 예상합니다.

페이로드 요청

Lambda 함수가 호출되면 다음 구조의 JSON 페이로드를 수신합니다.

페이로드 구조

{ "InvocationMetadata": { "CampaignContext": { "CampaignId": "string", "RunId": "string", "ActionId": "string", "CampaignName": "string" } }, "Items": { "CustomerProfiles": [ { "ProfileId": "string", "CustomerData": "string", "IdempotencyToken": "string" } ] } }

필드 설명

InvocationMetadata
  • CampaignContext: 캠페인 실행에 대한 메타데이터 포함

  • CampaignId: 캠페인의 고유 식별자

  • RunId:이 특정 캠페인 실행의 고유 식별자

  • ActionId: 아웃바운드 캠페인에서 실행 중인 흐름 작업의 식별자입니다.

  • CampaignName: 사람이 읽을 수 있는 캠페인 이름

Items
  • CustomerProfiles: 처리할 고객 프로필 배열(효율성을 위해 배치됨)

  • ProfileId: 고객 프로필의 고유 식별자

  • CustomerData: 고객 프로필의 JSON 문자열

  • IdempotencyToken: 멱등성 처리를 보장하기 위해이 특정 호출에 대한 고유 토큰

요청 페이로드 예제

{ "InvocationMetadata": { "CampaignContext": { "CampaignId": "campaign-12345", "RunId": "run-67890", "ActionId": "activity-abc123", "CampaignName": "Welcome Campaign" } }, "Items": { "CustomerProfiles": [ { "ProfileId": "customer-001", "CustomerData": "{\"firstName\":\"John\",\"lastName\":\"Doe\",\"email\":\"john.doe@example.com\"}", "IdempotencyToken": "token-xyz789" }, { "ProfileId": "customer-002", "CustomerData": "{\"firstName\":\"Jane\",\"lastName\":\"Smith\",\"email\":\"jane.smith@example.com\"}", "IdempotencyToken": "token-abc456" } ] } }

예상 응답 페이로드

Lambda 함수는 다음 구조의 JSON 응답을 반환해야 합니다.

응답 구조

{ "Items": { "CustomerProfiles": [ { "Id": "string", "ResultData": {} } ] } }

필드 설명

Items
  • CustomerProfiles: 요청의 각 고객 프로필에 해당하는 결과 배열

  • Id: 요청ProfileId의와 일치해야 합니다.

  • ResultData: 처리 결과가 포함된 사용자 지정 JSON 객체(선택 사항)

응답 페이로드 예제

{ "Items": { "CustomerProfiles": [ { "Id": "customer-001", "ResultData": { "recommendedProduct": "Premium Plan", "score": 85, "nextAction": "send_email" } }, { "Id": "customer-002", "ResultData": { "error": "Invalid customer data", "errorCode": "VALIDATION_ERROR" } } ] } }

중요한 제약

페이로드 크기 제한

  • 최대 응답 페이로드 크기: 고객 프로필당 32KB

  • 가이 제한을 ResultData 초과하면 호출이 유효하지 않은 것으로 표시됩니다.

응답 요구 사항

  • 요청에 ProfileId 포함된 모든에 대한 응답을 제공해야 합니다.

  • 누락된 응답은 오류로 처리됩니다.

  • 응답의 Id 필드는 요청의와 정확히 일치해야 합니다ProfileId.

오류 처리

  • Lambda 함수에서 예외가 발생하면 배치의 모든 프로필이 실패로 표시됩니다.

  • 디버깅을 ResultData 위해에 오류 세부 정보 포함

호출 유형

  • 호출 유형: REQUEST_RESPONSE (동기식)

  • 함수는 비동기적으로 처리하지 않고 30초 이내에 결과를 반환해야 합니다. 응답 시간이 30초를 초과하면 작업이 실패합니다.

2단계: Lambda 함수에 대한 아웃바운드 캠페인 액세스 권한 부여

  1. https://console.aws.amazon.com/connect/에서 Amazon Connect 콘솔을 엽니다.

  2. 인스턴스 페이지의 인스턴스 별칭 열에서 인스턴스 이름을 선택합니다. 이 인스턴스 이름은 Amazon Connect에 액세스하는 데 사용하는 URL에 표시됩니다.

  3. 탐색 창의 채널 및 커뮤니케이션에서 아웃바운드 캠페인을 선택합니다.

  4. 사용자 지정 작업 설정 섹션에서 Lambda 함수 드롭다운 상자를 사용하여 아웃바운드 캠페인 인스턴스에 추가할 함수를 선택합니다.

  5. Lambda 함수 추가를 선택합니다. 함수의 ARN이 Lambda Functions(Lambda 함수)에 추가되었는지 확인합니다.

3단계: 캠페인에서 Lambda 호출

  1. 여정 흐름을 열거나 생성합니다.

  2. 사용자 지정 작업 블록(통합 그룹)을 그리드에 추가합니다. 블록과 브랜치를 연결합니다.

  3. 사용자 지정 작업 블록의 제목을 선택하여 속성 페이지를 엽니다.

  4. 함수 ARN에서 아웃바운드 캠페인 인스턴스에 추가한 함수 목록에서 선택합니다.

4단계: Lambda 함수 응답 사용

변수에 직접 액세스

흐름 블록에서 이러한 변수에 직접 액세스하려면 사용자 지정 작업 블록 뒤에 블록을 추가한 다음 다음 예제와 같이 속성을 참조합니다.

RecommendedProduct - $.LambdaInvocation.ResultData.recommendedProduct Score - $.LambdaInvocation.ResultData.score

소스 속성에 지정된 이름이 Lambda에서 ResultData 반환된의 키 이름과 일치하는지 확인합니다.