我最近开始尝试使用AWS Lambda函数。单击 Test 按钮后,这就是Lambda控制台的执行结果窗口中显示的信息。
Response:
{
"statusCode": 500,
"body": "{\"message\":\"Missing credentials in config\",
\"code\":\"CredentialsError\",\"time\":\"2019-06-06T07:11:53.538Z\",
\"originalError\":{\"message\":\"No credentials to load\",
\"code\":\"CredentialsError\",\"time\":\"2019-06-06T07:11:53.538Z\"}}"
}
这是Lambda函数源代码:
var AWS = require('aws-sdk/dist/aws-sdk-react-native');
AWS.config.update({
region:'ap-northeast-1'
});
exports.handler = async (event,context) => {
var params = {
UserPoolId: 'ap-northeast-1MY-POOL-ID',
AttributesToGet: [
'email'
],
Limit: '2',
};
var cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider();
try {
const data = await cognitoidentityserviceprovider.listUsers(params).promise()
const response = {
inBound: event.sub,
statusCode: 200,
body: JSON.stringify(data)
}
return response;
} catch (err) {
const response = {
inBound: event.sub,
statusCode: 500,
body: JSON.stringify(err)
};
return response;
}
};
由于我已经设置了角色和策略,所以我不确定错误消息指的是哪种凭据和哪种配置。
答案 0 :(得分:1)
首先,将现有的import语句替换为以下内容。
var AWS = require('aws-sdk');
第二,按如下所示,授予Lambda角色的认知用户列表权限。
{
"Effect": "Allow",
"Action": [
"cognito-idp:ListUsers"
],
"Resource": [
"arn:aws:cognito-idp:ap-northeast-1:AWS_ACCOUNT_NO:userpool:*"
]
}
注意:将AWS_ACCOUNT_NO替换为您的实际AWS帐号。