【问题标题】:AWS Rekognition Javascript SDK - UnknownError: Bad RequestAWS Rekognition Javascript SDK - UnknownError:错误请求
【发布时间】:2018-06-30 06:33:50
【问题描述】:

我正在尝试通过 AWS Javascript SDK 使用 AWS Rekognition API,并在我尝试启动他们的任何检测服务时收到UnknownError: Bad Request。我想运行标签检测,但在尝试其他方法时遇到相同的错误,例如名人面部检测。我已确保我的帐户可以访问 Rekognition API 并确保我的凭据正确(或至少相同的凭据适用于附加到同一帐户的 S3)。

我的代码

var aws = require('aws-sdk');
const region = 's3-us-west-2';
const bucket = process.env.S3_VIDEO_BUCKET;
var requesttoken = randString(10) //generates random string
var key = 'path/to/key.mp4';

// used to check for keys to available files
var service = new aws.S3({
  accessKeyId: process.env.ACCESS_KEY,
  secretAccessKey: process.env.ACCESS_SECRET,
  region: region,
  endpoint: 'https://'+region+'.amazonaws.com/',
})

var rekognition = new aws.Rekognition({
  accessKeyId: process.env.ACCESS_KEY,
  secretAccessKey: process.env.ACCESS_SECRET,
  region: region,
  endpoint: 'https://'+region+'.amazonaws.com/',
  apiVersion: '2016-06-27'
})

// check that key is reachable in S3
this.service.getObject({Bucket:bucket,Key:key}, function(err, data){
  if(err){
    console.error(err, err.stack)
  } else {
    console.log(data)
  }
})

var params = {
  Video: {
    S3Object: {
      Bucket: bucket,
      Name: key
    }
  },
  ClientRequestToken: requesttoken,
  NotificationChannel: {
    RoleArn: 'arn:aws:sns:us-west-2:000000000:example',
    SNSTopicArn: 'example'
  }
};

rekognition.startContentModeration(params, (err,data)=>{
  if (err) {console.log(err, err.stack); return;};
  console.log(data)
})

当我运行这段代码时,我得到了

{ UnknownError: Bad Request
at Request.extractError 
(/Users/username/Desktop/project_directory/node_modules/aws-sdk/lib/protocol/json.js:48:27)
at Request.callListeners (/Users/username/Desktop/project_directory/node_modules/aws-sdk/lib/sequential_executor.js:105:20)
at Request.emit (/Users/username/Desktop/project_directory/node_modules/aws-sdk/lib/sequential_executor.js:77:10)
at Request.emit (/Users/username/Desktop/project_directory/node_modules/aws-sdk/lib/request.js:683:14)
at Request.transition (/Users/username/Desktop/project_directory/node_modules/aws-sdk/lib/request.js:22:10)
at AcceptorStateMachine.runTo (/Users/username/Desktop/project_directory/node_modules/aws-sdk/lib/state_machine.js:14:12)
at /Users/username/Desktop/project_directory/node_modules/aws-sdk/lib/state_machine.js:26:10
at Request.<anonymous> (/Users/username/Desktop/project_directory/node_modules/aws-sdk/lib/request.js:38:9)
at Request.<anonymous> (/Users/username/Desktop/project_directory/node_modules/aws-sdk/lib/request.js:685:12)
at Request.callListeners (/Users/username/Desktop/project_directory/node_modules/aws-sdk/lib/sequential_executor.js:115:18)
message: 'Bad Request',
code: 'UnknownError',
statusCode: 400,
time: 2018-06-29T21:08:27.184Z,
requestId: '2809C3770B525EF0',
retryable: false,
retryDelay: 57.00430269412582 }

我的问题

是否有人足够熟悉 Rekognition API/AWS 以及 JS SDK,他们知道在这种情况下 Bad Request 可能表示什么? AWS 文档中是否有某处解释了此错误的含义?

【问题讨论】:

    标签: javascript node.js amazon-web-services aws-sdk amazon-rekognition


    【解决方案1】:

    从您的配置中删除端点,它会自动填充

    这个配置也是错误的

    var rekognition = new aws.Rekognition({
    accessKeyId: process.env.S3_ACCESS_KEY,
    secretAccessKey: process.env.S3_BUCKET_ACCESS_SECRET,
    

    您的访问密钥 ID 应该是您的 AWS 访问密钥,而不是 S3 访问密钥。除非 S3 环境变量指向您的实际 AWS 访问密钥(您可能应该重命名它们)

    【讨论】:

    • 是的。另外,文档说:端点(字符串)- 发送请求的端点 URI。默认端点是从配置的区域构建的。端点应该是类似“https://{service}.{region}.amazonaws.com”的字符串
    • 感谢您的回复!当我从收到的参数中删除端点时:UnknownError: Moved Permanently。您假设 S3_access_key 与 AWS 访问密钥相同是正确的。我最近开始尝试使用 Rekognition,只是还没来得及更新变量名。
    • 使用 AWS Docs 检查,这表明终端节点不正确。是否可以更改端点以使自动填充端点不正确?我还通过输入 'https://rekognition.'+region+'.amazonaws.com' 进行了检查,它也返回了 UnknownError: Moved Permanently 。我在哪里可以检查正确的端点是什么?
    • Rekognition 端点:docs.aws.amazon.com/general/latest/gr/… S3 端点:docs.aws.amazon.com/general/latest/gr/rande.html#s3_region 永久移动也可能指 S3 命令,因此请放置一个 console.log('S3')/console.log('Rekognition')在每个错误之前,以便您可以缩小范围。
    • 我的区域变量已将 s3 烘焙到其中,因此将其设置为重新识别区域会搞砸。全部修复!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-15
    • 2014-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-06
    • 2015-08-31
    相关资源
    最近更新 更多