AWS Rekognition Javascript SDK-未知错误:请求错误

AWS Rekognition Javascript SDK-未知错误:请求错误,javascript,node.js,amazon-web-services,aws-sdk,amazon-rekognition,Javascript,Node.js,Amazon Web Services,Aws Sdk,Amazon Rekognition,我试图通过AWS Javascript SDK使用AWS Rekognition API,并在尝试启动其任何检测服务时收到未知错误:错误请求。我想运行标签检测,但在尝试其他操作(如名人面部检测)时出现相同的错误。我已确保我的帐户可以访问Rekognition API,并确保我的凭据正确无误(或者至少相同的凭据适用于连接到同一帐户的S3) 我的代码 var aws = require('aws-sdk'); const region = 's3-us-west-2'; const bucket =

我试图通过AWS Javascript SDK使用AWS Rekognition API,并在尝试启动其任何检测服务时收到
未知错误:错误请求
。我想运行标签检测,但在尝试其他操作(如名人面部检测)时出现相同的错误。我已确保我的帐户可以访问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 }
{Unknown错误:请求错误
应请求。错误
(/Users/username/Desktop/project_directory/node_modules/aws sdk/lib/protocol/json.json: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)
在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
应请求。(/Users/username/Desktop/project_directory/node_modules/aws sdk/lib/Request.js:38:9)
应请求。(/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)
消息:“请求错误”,
代码:“未知错误”,
状态代码:400,
时间:2018-06-29T21:08:27.184Z,
requestId:'2809C3770B525EF0',
可检索:错误,
retryDelay:57.00430269412582}
我的问题


是否有人对Rekognition API/AWS和JS SDK足够熟悉,知道在这种情况下可能会出现什么错误请求?AWS文档中是否有说明此错误的地方?

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

而且这个配置是错误的

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

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

是。另外,文档中还提到:endpoint(String)——要向其发送请求的端点URI。默认端点是从配置的区域生成的。端点应该是类似于“https://{service}.{region}.amazonaws.com”的字符串谢谢您的响应!从收到的参数中删除端点时:
未知错误:永久移动
。假设S3_访问_密钥与AWS访问密钥相同是正确的。我最近开始尝试使用Rekognion,只是没有时间更新变量名。通过AWS文档检查,这表明端点不正确。是否可以更改端点,使自动填充端点不正确?我还通过输入
”进行了检查https://rekognition.“+region+”.amazonaws.com“
并且它还返回了
未知错误:永久移动了
。我在哪里可以检查正确的端点是什么?Rekognition端点:S3端点:永久移动可能也会引用S3命令,因此在每个错误之前放置一个console.log('S3')/console.log('Rekognition'),以便缩小其范围。my region变量将S3烘焙到其中,因此,将其设置为重新命名的区域是在搞砸它。都修好了!