bor*_*ode 5 amazon-web-services aws-api-gateway aws-step-functions
在aws步骤函数中,我需要使用先前状态值的路径参数来调用api网关端点。

步骤功能代码(Api网关调用)
"API Gateway Request": {
"Type": "Task",
"Resource": "arn:aws:states:::apigateway:invoke",
"Parameters": {
"ApiEndpoint": "****.amazonaws.com",
"Method": "GET",
"Headers": {
"Accept": [
"application/json"
]
},
"Stage": "dev",
"Path": "/sample/$.id",
"AuthType": "IAM_ROLE"
},
"InputPath": "$.id",
"Next": "Lambda Invoke",
"ResultPath": "$.myStateInput"
}
Run Code Online (Sandbox Code Playgroud)
该状态的输入:
{ "id": "1231" }
Run Code Online (Sandbox Code Playgroud)
它不是将“$.id”替换为“1231”,而是像下面这样调用 url
API网关:
请告诉我做错了什么?
根据评论,解决方案是使用内部函数:
"Path.$": States.Format('/sample/{}', $.id)
Run Code Online (Sandbox Code Playgroud)
州代码
"API Gateway Request": {
"Type": "Task",
"Resource": "arn:aws:states:::apigateway:invoke",
"Parameters": {
"ApiEndpoint": "**.amazonaws.com",
"Method": "GET",
"Headers": {
"Accept": [
"application/json"
]
},
"Stage": "dev",
"Path.$": "States.Format('/sample/{}', $.id)",
"AuthType": "IAM_ROLE"
},
"Next": "Lambda Invoke",
"ResultPath": "$.myStateInput"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1531 次 |
| 最近记录: |