我目前陷入了请求直通的困境。我需要使用步骤函数管道处理来自标头和请求正文的信息。我正在使用 REST API 网关,该网关在集成请求中具有以下映射模板
#set($data = $util.escapeJavaScript($input.json('$')))
{
"input": "{ \"input\": $data, \"stageVariables\" : { #foreach($key in $stageVariables.keySet()) \"$key\" : \"$util.escapeJavaScript($stageVariables.get($key))\" #if($foreach.hasNext),#end #end } }",
"stateMachineArn": "arn:aws:states:eu-west-1:xxxxxxxxxxxx:stateMachine:StateMachine-1"
}
Run Code Online (Sandbox Code Playgroud)
但这是行不通的。如果我使用 lambda 事件访问标头,它将是 event['headers']['Authorization'] 但我仅将请求正文作为步骤函数的输入。
当我将数据流模拟器用于整个请求,然后将 JsonPath 放入我的状态机模板中时,它仍然没有为我提供标头和正文作为输入。
有人可以帮我吗?
假设我在 AWS Step Function 中有这个状态机:
我是用这个输入开始的:
{
"item1": 1,
"item2": 2,
"item3": 3
}
Run Code Online (Sandbox Code Playgroud)
我很清楚正在Action A接收输入有效负载。但是,如何Action C访问状态机输入来获取 的值item3?是否可以?
谢谢!!
我必须在存储桶内的文件夹上上传文件时启动 stepMachine 执行,我了解了如何在 S3 存储桶级别上配置 eventbridge。但同一个存储桶上可以有多个文件上传。当对象插入存储桶内的特定文件夹时,我需要收到通知。有没有可能的方法来实现这一目标?
amazon-s3 amazon-web-services aws-lambda aws-step-functions aws-event-bridge
aws 步骤函数中有没有办法将字符串转换为数字?
我有一个从 api 网关传递到步骤函数的查询参数。它是一个带有数值的字符串。我想将字符串转换为步骤函数状态语言中的数字,但到目前为止还没有运气。
如何使用API网关POST请求调用AWS步骤函数,并将请求的JSON有效负载调用到步骤函数?
问题:
1)我用“ Hello World”蓝图创建新的AWS状态机
2)点击创建状态机按钮
3)它打开一个对话框,然后选择IAM角色下拉列表为空,并且不显示与我的AWS帐户关联的现有IAM角色的列表
调试:
我发现在执行其他操作之前,加载仪表板本身时会引发JS错误。
JS错误:grapheneConsole_prod_963c8da….gz.js:110 POST https://us-west-2.console.aws.amazon.com/states/service/iam/createrole 403(禁止)
因此,我认为它假定用户具有我没有的“创建角色”权限。
如果有人以前遇到过这个问题并解决了。请帮我。
一些额外的信息:我正在使用分配给所有开发人员的公司AWS帐户。同样对于lambda或任何其他AWS资源,我们被赋予了我们应该使用的特定开发人员角色,而我在创建lambda的过程中已将其与其他所有功能成功地结合使用。如果它可以向我显示列表,那么我将选择相同的iam角色
amazon-ec2 amazon-web-services amazon-iam aws-lambda aws-step-functions
我想要一个示例将AWS API Gateway与Step Function集成.我已阅读本教程使用API网关创建步骤函数API但该教程需要我以格式发送请求
{
"input": "{}",
"name": "PostmanExecution",
"stateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:Custom"
}
Run Code Online (Sandbox Code Playgroud)
我想发送普通请求并仅在API网关中配置此stateMachineArn,以便客户端不需要发送它.
amazon-web-services aws-lambda aws-api-gateway aws-step-functions
是否可以通过API Gateway端点调用AWS Step功能并监听响应(直到工作流完成并从结束步骤返回结果)?
目前,我能够从文档中找到步骤函数本质上是异步的,并在最后进行最终回调.我需要API调用响应从步骤函数流中获取最终结果而不进行轮询.
所以我想在Amazon AWS中创建一个简单的管道.我想使用由流生成的数据执行步骤函数,该流触发状态机的第一个lambda
我想做的是跟随.
输入数据由AWS Kinesis流式传输
此Kinesis流用作执行和写入S3 Bucket的lambda1的触发器.
这将触发(使用步骤函数)lambda2,它将读取给定存储桶中的内容并将其写入另一个存储桶
现在我想使用Amazon Step Function实现状态机.我创建了一个非常简单的状态机
{
"Comment": "Linear step function test",
"StartAt": "lambda1",
"States": {
"lambda1": {
"Type": "Task",
"Resource": "arn:....",
"Next": "lambda2"
},
"lambda2": {
"Type": "Task",
"Resource": "arn:...",
"End": true
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想要的是,Kinesis应该触发第一个Lambda,一旦执行了step函数就会执行lambda 2.这似乎不会发生.即使从流中触发我的Lambda 1并写入S3存储桶,步骤功能也不会执行任何操作.我可以选择手动启动新执行并传递JSON作为输入,但这不是我正在寻找的工作流程
我试图弄清楚如何将多个输入传递给我的ARN。但是,看来我做不到。
以下是我的机器规格
{
"StartAt": "DemoStateFunction",
"Version": "1.0",
"States": {
"DemoStateFunction": {
"Type": "Task",
"Resource": "ARN-Demo-Function",
"InputPath": "$.demostate1",
"Next": "DemoStateFunction2"
},
"DemoStateFunction2": {
"Type": "Task",
"Resource": "ARN-Demo-Function",
"InputPath": "$.demostate2",
"End": true
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的意见
{
"demostate1": {
"data": "john",
},
"demostate2": {
"data": "doe"
}
}
Run Code Online (Sandbox Code Playgroud)
执行此任务时。它成功检索了我的demostate1数据,但是似乎无法像我在“ TaskStateEntered”步骤中看到的那样看到demostate2。