使用AWS CLI测试Amazon SageMaker模型终端节点时,无效的base64:“ {” instances“:[{” in0“:[863],” in1“:[882]}]}”“

时间:2020-05-24 09:49:59

标签: amazon-web-services aws-cli amazon-sagemaker

我是Amazon SageMaker的新手,我将密切关注本教程https://aws.amazon.com/blogs/machine-learning/creating-a-machine-learning-powered-rest-api-with-amazon-api-gateway-mapping-templates-and-amazon-sagemaker/,以使用Amazon API Gateway映射模板和Amazon SageMaker创建由机器学习支持的REST API。

当我在终端上运行以下命令时(教程的第2步

aws sagemaker-runtime invoke-endpoint \
  --endpoint-name <endpoint-name> \
  --body '{"instances": [{"in0":[863],"in1":[882]}]}' \
  --content-type application/json \
  --accept application/json \
  results

我收到以下错误: Invalid base64: "{"instances": [{"in0":[863],"in1":[882]}]}" 我的端点是SageMaker控制台上的InService,并且示例Jupyter笔记本成功运行。 (我也用实际名称替换了<endpoint-name>-收到相同的错误,名称前后都有引号,没有引号)

使用 zsh ,这是aws cli版本:

aws --version
aws-cli/2.0.15 Python/3.7.4 Darwin/19.4.0 botocore/2.0.0dev19

想知道问题可能出在哪里。感谢您的帮助

2 个答案:

答案 0 :(得分:2)

尝试添加 --cli-binary-format raw-in-base64-out 参数。

答案 1 :(得分:1)

问题在于,主体内容应采用base 64编码,请在将主体传递给invoke语句之前尝试对base64进行编码。