我正在尝试从输入读取查询字符串,但是step函数给出了- "Athena.InvalidRequestException“
{
"StartAt": "CallFunction",
"States": {
"CallFunction": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-west-2:12345:function:readFile",
"ResultPath": "$.query",
"Next": "Start an Athena query"
},
"Start an Athena query": {
"Resource": "arn:aws:states:::athena:startQueryExecution.sync",
"Parameters": {
"QueryString": "$.query",
"WorkGroup": "primary",
"ResultConfiguration": {
"OutputLocation": "s3://test_athena/test1"
}
}
}
}启动雅典娜查询状态的输入:
{
"Comment": "Insert your JSON here",
"query": "\"SELECT * FROM test1 LIMIT 10; \""
}在启动雅典娜查询状态时获取以下错误:
{
"resourceType": "athena",
"resource": "startQueryExecution.sync",
"error": "Athena.InvalidRequestException",
"cause": "line 1:1: mismatched input '$'. Expecting: 'ALTER', 'ANALYZE', 'CALL', 'COMMIT', 'CREATE', 'DEALLOCATE', 'DELETE', 'DESC', 'DESCRIBE', 'DROP', 'EXECUTE', 'EXPLAIN', 'GRANT', 'INSERT', 'PREPARE', 'RESET', 'REVOKE', 'ROLLBACK', 'SET', 'SHOW', 'START', 'UNLOAD', 'UPDATE', 'USE', <query> (Service: AmazonAthena; Status Code: 400; Error Code: InvalidRequestException; Request ID: 2a99f6eb-b853-407f-b229-d309a4ca3f5c; Proxy: null)"
}我是AWS的新手。在这方面有人能帮我吗?如何在雅典娜的QueryString参数中传递查询对象?
发布于 2021-05-06 14:19:09
您缺少了.$键中的“QueryString”注释:
"QueryString.$": "$.query",...参数字段的值可以是包含在状态机定义中的静态值,也可以是从输入或具有路径的上下文对象中选择的值。对于使用路径选择值的键值对,键名必须以.$结尾。
此外,您还应该在第二状态中添加以下字段,以便在那里显式显示:
"Type": "Task",
"End": truehttps://stackoverflow.com/questions/67414057
复制相似问题