首页 > 解决方案 > listCollection 在使用 javascript sdk 时返回空,而它是通过 python 使用 boto3 创建的

问题描述

我使用 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)

但是当我尝试使用以下代码在nodeJs中使用Javascript SDK“aws-sdk”获取相同的集合时,我得到空结果:

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: [] }

标签: aws-sdkboto3amazon-rekognition

解决方案


解决了它缺少第一个代码中的区域。由于缺少区域,它假定一些默认区域,因此在 us-east-1 区域中搜索它时不会显示该集合,以解决传递区域的需要,如下所示:

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

推荐阅读