是否可以通过 AWS API 网关同步调用 AWS Step Function?
Is it possible to make synchronous calls to AWS Step Function through AWS API Gateway?
有没有办法通过 AWS API 网关向 AWS Step Function 发出同步请求?
或者 AWS 状态机是否只能用于启动异步作业?
启动异步作业的设置可能包括以下内容:
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'
...
AWS API 网关将根据 quota limits 对任何集成进行 ~ 30 seconds
超时。
因此它们仅用于启动异步作业恕我直言。
不,如果你直接调用step函数就不会。但是,您可以通过将步骤函数包装在 AWS Lambda 中来模仿此行为。将端点配置为 Lambda 代理。让 AWS Lambda 触发 an/the AWS Step Function,并让 AWS Lambda 监控该步骤函数以确定其完成时间。完成后,将 AWS Lambda return 发送给端点的调用者。所有这些机制都需要快速发生,因为您在 API 网关上有 30 秒的硬超时。
在很多情况下,端点调用会触发步进函数。我通常让端点调用 Lambda,然后在步进函数启动后启动步进函数 returning。然后,我提供了第二个端点,调用者可以使用它来找出该步骤函数正在执行的任何操作的状态。
有没有办法通过 AWS API 网关向 AWS Step Function 发出同步请求?
或者 AWS 状态机是否只能用于启动异步作业?
启动异步作业的设置可能包括以下内容:
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'
...
AWS API 网关将根据 quota limits 对任何集成进行 ~ 30 seconds
超时。
因此它们仅用于启动异步作业恕我直言。
不,如果你直接调用step函数就不会。但是,您可以通过将步骤函数包装在 AWS Lambda 中来模仿此行为。将端点配置为 Lambda 代理。让 AWS Lambda 触发 an/the AWS Step Function,并让 AWS Lambda 监控该步骤函数以确定其完成时间。完成后,将 AWS Lambda return 发送给端点的调用者。所有这些机制都需要快速发生,因为您在 API 网关上有 30 秒的硬超时。
在很多情况下,端点调用会触发步进函数。我通常让端点调用 Lambda,然后在步进函数启动后启动步进函数 returning。然后,我提供了第二个端点,调用者可以使用它来找出该步骤函数正在执行的任何操作的状态。