AWS API Gateway를 통해 AWS Step Function에 동기식 요청을 할 수있는 방법이 있습니까?
아니면 AWS State Machine을 비동기 작업 시작에만 사용할 수 있습니까?
비동기 작업을 시작하는 설정에는 다음이 포함될 수 있습니다.
ApiGatewayMethodStartExecution:
Type: 'AWS::ApiGateway::Method'
Properties:
...
Integration:
Type: AWS
Uri: arn:aws:apigateway:eu-north-1:states:action/StartExecution
RequestTemplates:
application/json: !Sub
- |
....
- StateMachineArn: !Ref AStateMachine
ApiGatewayMethodGetResult:
Type: 'AWS::ApiGateway::Method'
Properties:
...
Integration:
Type: AWS
Uri: arn:aws:apigateway:eu-north-1:states:action/DescribeExecution
RequestTemplates:
application/json: !Sub
- |
....
- StateMachineArn: !Ref AStateMachine
AStateMachine:
Type: 'AWS::StepFunctions::StateMachine'
...
아니요, step 함수를 직접 호출하면 아닙니다. 그러나 AWS Lambda에서 step 함수를 래핑하여이 동작을 모방 할 수 있습니다. 엔드 포인트를 Lambda 프록시로 구성합니다. AWS Lambda가 AWS Step 함수를 트리거하고 AWS Lambda가 단계 함수를 모니터링하여 완료시기를 결정하도록합니다. 완료되면 AWS Lambda가 무엇이든 반환하도록하여 엔드 포인트의 호출자에게 전송합니다. API Gateway에서 30 초 제한 시간이 제한되어 있기 때문에 이러한 모든 기계는 신속하게 발생해야합니다.
엔드 포인트 호출에 의해 단계 함수가 트리거되는 상황이 많이 있습니다. 일반적으로 엔드 포인트에서 Lambda를 호출 한 다음 step 함수가 시작되면 반환되는 step 함수를 시작합니다. 그런 다음 호출자가 해당 단계 함수가 수행중인 작업의 상태를 확인하기 위해 사용할 수있는 두 번째 끝점을 제공합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다