0

현재 설정 : AWS CodePipeline에 의해 호출 된 람다 함수가 있습니다. Lambda 함수는 일부 파일을 s3 버킷에 덤프하고 CodePipeline은 다른 단계 (이 경우 테스트 단계)로 진행합니다.지연 AWS 코드 파이프 라인 :

문제점 : 파일을 s3 버킷에 덤프 한 후 약 60 초 동안 대기해야하기 때문에 앞에서 설명한 파이프 라인이 필요합니다 (덤프 된 s3 버킷을 읽는 코드베이스 내에서 처리가 완료되었는지 확인해야합니다). 지체 된 후에는 테스트가 정상적으로 실행되어야합니다.

질문 : 코드 파이프 라인 내에 주어진 시간 동안 기다리는 방법이 있습니까? 람다가 대기 함수를 실행할 수 있습니까?

-

나는 자바 스크립트의 실행 지연 (내 람다 함수가 작성된 언어)에 대한 연구의 공정한 금액을 했어요. 비동기 수면 함수를 구현할 수 없으며 구현 방법에 대한 람다 문서를 찾을 수 없습니다.

+0

는 두 개의 파이프 라인 대신에이 작업을 수행하기 위해 실현 가능성이 있습니까? – dashmug

+0

람다 함수가 응용 프로그램이 파일 처리를 마쳤을 때이를 알 수 있습니까? 예 : 완료되었을 때 확인할 수있는 "ListProcesses"API가 있습니까? 응용 프로그램이 처리를 마쳤을 때 명시 적으로 확인하는 이점은 기능 변경으로 인해 처리 속도가 시간이 지남에 따라 더 빠르거나 느려지더라도 기다리는 시간이 동적으로 변경된다는 것입니다. – TimB

+0

이것은 좋은 대답입니다. 그러나 오류 처리 작업을 여기에서 보지 못했습니다. 응용 프로그램이 처리되지 않고 파일이 제거 될 것으로 예상되는 양동이에 남아 있다고 가정 해보십시오. 응용 프로그램은 이상적으로 1 분 정도 후에 시간 초과됩니다 ... 따라서 동일한 문제를 소개합니다. –

답변

1

JS 람다에 대해서는 잘 모르겠지만 JS 람다에서 파이썬으로 작성된 다른 람다를 호출하여 60 초를 기다릴 수 있습니다.

두 번째 방법은 S3에서 데이터를 덤프하고 테스트 방법을 실행하기 전에 AWS 단계 함수를 사용하여 60 초 동안 대기하는 것입니다.

파이썬 람다 대기 :

import boto3, os, time 
def lambda_handler(event, context): 
    time.sleep(60) 
+0

나는이 대답을 좋아하지만 확실히 이상적은 아니다. –

관련 문제