amazon-web-services - 带 Step Function 的 AWS API 网关

标签 amazon-web-services aws-lambda aws-api-gateway aws-step-functions

我想要一个将 AWS API Gateway 与 Step Function 集成的示例。我已阅读本教程 Creating a Step Functions API Using API Gateway 但该教程需要我以以下格式发送请求

{    
"input": "{}",    
"name": "PostmanExecution",    
"stateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:Custom" 
}

我想发送普通请求并仅在 API 网关中配置这个 stateMachineArn ,这样客户端就不需要发送这个了。

最佳答案

创建您的 API 网关资源和方法。然后在“方法执行”设置中,在集成请求中,使用以下设置:

  • 集成类型:AWS 服务
  • AWS 区域:您所在的区域
  • AWS 服务:Step Functions
  • AWS 子域:您的子域(如果有) - 我将其留空
  • HTTP 方法:POST
  • 行动:开始执行
  • 执行角色:需要是有StepFunction启动执行策略的角色,如arn:aws:iam::aws:policy/AWSStepFunctionsFullAccess
  • 凭据缓存:我将其保留为默认值
  • 内容处理:直通

  • 然后是魔法。再往下,在 body 映射模板下:
  • 请求正文透传:从不
  • 添加映射模板:application/json

  • 在模板文本框中进一步向下:
    #set($input = $input.json('$'))
    {
       "input": "$util.escapeJavaScript($input)",
       "stateMachineArn": "arn:aws:states:eu-west-1:123456789012:stateMachine:yourStepFunctionName"
    }
    

    这会将发布到 API Gateway 的 json 负载传递到 Step Function。

    省略执行名称,以便每次调用 API Gateway 都会创建一个新的执行。

    关于amazon-web-services - 带 Step Function 的 AWS API 网关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44605228/

    相关文章:

    amazon-web-services - Sagemaker boto3 invoke_endpoint - 我不断收到有效载荷的类型错误。使用 Blazingtext 模型端点

    java - 具有 Java 资源的 AWS Lambda 应用程序

    amazon-web-services - 如何防止 API 返回指数增加的转义字符串?

    java - 如何将我的 .war 文件复制到 AWS 上的 EC2 实例?

    javascript - 错误: The security token included in the request is invalid - AWS DynamoDB

    amazon-web-services - AWS KMS 退休与撤销授权

    hadoop - 错误: Jobflow entered COMPLETED while waiting to ssh

    javascript - Amazon Lambda 不会写入 DynamoDB

    amazon-web-services - AWS API网关: How to achieve continuous delivery?

    amazon-web-services - 如何使用 Lambda 访问 AWS API Gateway 请求的 HTTP header ?