json - 将 JSON 字符串作为输入传递给 aws 命令

标签 json linux shell

我正在尝试从数据管道调用 API,但出现以下错误。 这就是我正在尝试的。

aws apigateway test-invoke-method --rest-api-id  int836id123 --resource-id  1ukckkkwq1 --http-method POST --body "{\"QUEUEURL\": \"\",
\"BUCKETREGION\": \"us-east-1\",
\"FLAGFILE\": \"\",
\"FTPUSERID\": \"abcd-test-parameter\",
\"FTPPATH\": \"/abcd/Incr1\", 
\"FTPPASSWORD\": \"abcd-test-parameter\", 
\"PARAMETERSTOREREGION\":\"us-east-1\",
\"ISFTP2S3\": \"false\", 
\"FTPSERVER\": \"11.42.123.111\", 
\"BUCKETNAME\": \"path/Lineite/MAIN\", 
\"QUEUEREGION\": \"\",
\"LOCALPATH\": \"path\"}"

我已经确认命令中没有多余的回车空格。 我也尝试在没有 \ 的情况下运行,但同样的错误。

这是我得到的错误

2018 : Lambda invocation failed with status: 400\nMon Apr 02 06:45:20 UTC 2018 : Execution failed: Could not parse request body into json: Unexpected character ('Q' (code 81)): was expecting double-quote to start field name\n at [Source: [B@72073757; line: 1, column: 3]\nMon Apr 02 06:45:20 UTC 2018 : Method completed with status: 400\n", "latency": 41, "headers": {} }

当我尝试从 AWS cli 运行时,它可以运行,但不能从数据管道运行。

最佳答案

您可以使用此处文档来定义格式正确的 JSON,这样您就不必担心转义引号。定义一个函数为

jsonDump()
{
  cat <<EOF
{
   "QUEUEURL":"",
   "BUCKETREGION":"us-east-1",
   "FLAGFILE":"",
   "FTPUSERID":"abcd-test-parameter",
   "FTPPATH":"/abcd/Incr1",
   "FTPPASSWORD":"abcd-test-parameter",
   "PARAMETERSTOREREGION":"us-east-1",
   "ISFTP2S3":"false",
   "FTPSERVER":"11.42.123.111",
   "BUCKETNAME":"path/Lineite/MAIN",
   "QUEUEREGION":"",
   "LOCALPATH":"path"
}
EOF
}

现在调用下面的函数

aws apigateway test-invoke-method --rest-api-id  int836id123 --resource-id  1ukckkkwq1 --http-method POST --body "$(jsonDump)"

关于json - 将 JSON 字符串作为输入传递给 aws 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49606752/

相关文章:

linux - 为什么别名不适用于 clear 命令 deepIn linux?

bash - 尝试从 bash 中的字符串中检索前 5 个字符(仅数字和字母)

python - 使用 glob 通过 subprocess.run() 生成参数

java - 使用 build.sh 脚本构建 Android

linux - mod_perl 看不到/tmp 中的文件

linux - 如何将参数传递给 sh 从 stdin 读取的脚本?

javascript - D3 遍历内部JSON

mysql - 如何在没有模式的情况下将 JSON 存储在数据库中

php - Volley : How to extract JSONObject from String Response? 这可能吗?

json - Pyspark从S3存储桶的子目录中读取所有JSON文件