在我的 api 上,我有一个带有路径参数的路由:api.com/item/{id}
我无法直接从 stpefunction 生成路径。我尝试使用 intriseque 函数连接静态部分和动态部分,但出现此错误:Reference path didn't start with '$'
并且我没有找到任何参数以在文档中输入路径参数
{
"Comment": "Stepfunction",
"StartAt": "Generate random ID",
"States": {
"Generate random ID": {
"Type": "Task",
"Resource": "${GetRandomFunctionArn}",
"ResultPath": "$",
"Next": "Get item"
},
"Get item": {
"Type": "Task",
"Resource": "arn:aws:states:::apigateway:invoke",
"Parameters": {
"ApiEndpoint": "${APIBaseUrl}",
"Method": "GET",
"RequestBody": {},
"AuthType": "NO_AUTH",
"Stage": "${APIStage}",
"Path": "States.Format(${EndpointProductAvailability}/{}, $.item_id)"
},
"End": "True"
}
}
}
stepfunctin 是 sam 应用程序的一部分。
如何使用一部分作为输入变量而其余部分由前一个任务生成的 api 调用?
答案 0 :(得分:0)
你的路径应该是这样的:
<块引用>"Path.$": "States.Format('{}', $.item_id)"
以上对我有用。
{
"Parameters": {
"foo.$": "States.Format('Hello, {} {}', $.firstName, $.lastName)"
}
}
因此,当您共享 URL 路径时,它类似于 api.com/item/{id}
"Path.$": "States.Format('item/{}', $.item_id)"
应该也可以。
我看到的另一个是这样的,Generate random ID
生成如下输出:
{
"apipath": "item/",
"item_id": "1213"
}
"Path.$": "States.Format($.apipath, $.item_id)"