listCollection возвращает пустой при использовании javascript sdk, когда он был создан с помощью python с использованием boto3

#aws-sdk #boto3 #amazon-rekognition

#aws-sdk #boto3 #amazon-rekognition

Вопрос:

Я создал коллекцию с использованием boto3 со следующим кодом:

 rekognition = boto3.client('rekognition',
        aws_access_key_id="__myclientId",
        aws_secret_access_key="__secret"
)
rekognition.create_collection(
     CollectionId='myPhotos'
)
 

который отображается как созданный, когда я извлекаю его, используя следующий код в python boto3:

 response = rekognition.list_collections()
print(response)
 

Но когда я пытаюсь получить ту же коллекцию, используя Javascript SDK «aws-sdk» в NodeJS, используя следующий код, я получаю пустые результаты:

 const AWS = require('aws-sdk');
AWS.config.update({
            accessKeyId : "__myclientId",
            secretAccessKey : "__secret",
            region: "us-east-1"
});

let rekognition = new AWS.Rekognition();
rekognition.listCollections({}, function (err, data)
{
     console.log(err, data);
});
 

ОТВЕТ JS:

 { CollectionIds: [], FaceModelVersions: [] }
 

Ответ №1:

Решил, что в первом коде отсутствует регион. Из-за отсутствия региона он принимает некоторый регион по умолчанию, и из-за этого коллекция не отображается при поиске ее в регионе us-east-1, чтобы решить эту проблему, необходимо передать регион следующим образом:

 rekognition = boto3.client('rekognition',
        aws_access_key_id="__myclientId",
        aws_secret_access_key="__secret",
        region_name= "us-east-1"
)