AWS Rekognition Javascript SDK - Неизвестная ошибка: неверный запрос - PullRequest
0 голосов
/ 30 июня 2018

Я пытаюсь использовать AWS Rekognition API через AWS Javascript SDK и получаю UnknownError: Bad Request, когда пытаюсь запустить любой из их сервисов обнаружения. Я хочу запустить обнаружение метки, но при попытке других выполнить такую ​​же ошибку, как, например, обнаружение лица знаменитости. Я убедился, что моя учетная запись имеет доступ к API Rekognition, и убедился, что мои учетные данные верны (или, по крайней мере, те же учетные данные работают для 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, чтобы знать, что в этом случае может указывать неправильный запрос? Есть ли где-нибудь в документации AWS, что объясняет, что может указывать эта ошибка?

1 Ответ

0 голосов
/ 30 июня 2018

Удалить конечную точку из вашей конфигурации, она заполняется автоматически

Также этот конфиг неправильный

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

Идентификатор ключа доступа должен быть вашим ключом доступа AWS, а не ключом доступа S3. Если только переменные S3 не указывают на ваши действительные ключи доступа AWS (вам, вероятно, следует их переименовать)

...