我创建了一个AWS Lambda函数来测试新的Cognito用户池帐户创建,但未在用户池中创建任何帐户,并且控制台日志中未显示任何错误。我检查了AWS Cloud Watch,但在Cloud Watch中也未报告任何错误。
START RequestId: ..... Version: $LATEST
END RequestId: .....
REPORT RequestId: ..... Duration: 80.12 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 84 MB
我将Lambda函数更改为更简单的函数; describeUserPool。仍然没有引发任何错误,并且没有在控制台中打印用户池信息。我在describeUserPool回调函数中添加了console.log打印,但是没有打印。
lambda函数是使用AWS Console Lambda嵌入式编辑器创建的。 Lambda函数已附加AmazonESCognitoAccess策略(此策略具有对Cognito用户池的列表/读取/写入访问级别)。
任何人都可以对我犯的错误有所了解吗?预先非常感谢。
var aws = require('aws-sdk');
aws.config.update({
accessKeyId: 'access_key_id',
secretAccessKey: 'secret_access_key',
region: 'us-east-1',
apiVersion: '2016-04-18'
});
var cognito = new aws.CognitoIdentityServiceProvider();
var params = {
UserPoolId: 'us-region-user-pool-id'
};
exports.handler = async (event) => {
cognito.describeUserPool(params, function(err, data) {
console.log('hello from inside function');
if (err) {
console.log(err);
} else {
console.log(data);
}
});
};
如果我在AdminCreateUser中包含不正确的参数,则会报告错误
var aws = require('aws-sdk');
aws.config.update({
accessKeyId: 'access_key_id',
secretAccessKey: 'secret_access_key',
region: 'us-east-1',
apiVersion: '2016-04-18'
});
var cognito = new aws.CognitoIdentityServiceProvider();
var params = {
UserPoolId: 'us-region-user-pool-id'
Username: 'someone',
TemporaryPassword: '11223344',
DesiredDeliveryMediums: 'EMAIL',
MessageAction: 'SUPPRESS',
UserAttributes: [
{
Name: 'Email',
Value: '[email protected]'
},
{
Name: 'Family_Name',
Value: 'One'
},
{
Name: 'Given_Name',
Value: 'Some'
},
{
Name: 'Phone_Number_verified',
Value: 'True'
},
{
Name: 'Email_verified',
Value: 'True'
}
],
};
exports.handler = async (event) => {
cognito.adminCreateUser(params, function(err, data) {
console.log('hello from inside function');
if (err) {
console.log(err);
} else {
console.log(data);
}
});
};
我在Lambda嵌入式编辑器控制台中收到以下错误消息:
Response:
null
Request ID:
"6e50fdb4-e437-4b84-be7b-3caaeb5b0a98"
Function Logs:
ncCredentials (/var/runtime/node_modules/aws-sdk/lib/config.js:391:24)
at Config.getCredentials (/var/runtime/node_modules/aws-sdk/lib/config.js:411:9) {
code: 'MultipleValidationErrors',
errors: [
InvalidParameterType: Expected params.DesiredDeliveryMediums to be an Array
at ParamValidator.fail (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:50:37)
at ParamValidator.validateType (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:232:10)
at ParamValidator.validateList (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:99:14)
at ParamValidator.validateMember (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:90:21)
at ParamValidator.validateStructure (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:75:14)
at ParamValidator.validateMember (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:88:21)
at ParamValidator.validate (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:34:10)
at Request.VALIDATE_PARAMETERS (/var/runtime/node_modules/aws-sdk/lib/event_listeners.js:126:42)
at Request.callListeners (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:106:20)
at callNextListener (/var/runtime/node_modules/aws-sdk/lib/sequential_executor.js:96:12) {
code: 'InvalidParameterType',
time: 2020-05-31T21:59:35.116Z
},
InvalidParameterType: Expected params.UserAttributes[3].Value to be a string
at ParamValidator.fail (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:50:37)
at ParamValidator.validateType (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:232:10)
at ParamValidator.validateString (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:154:32)
at ParamValidator.validateScalar (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:130:21)
at ParamValidator.validateMember (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:94:21)
at ParamValidator.validateStructure (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:75:14)
at ParamValidator.validateMember (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:88:21)
at ParamValidator.validateList (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:103:14)
at ParamValidator.validateMember (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:90:21)
at ParamValidator.validateStructure (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:75:14) {
code: 'InvalidParameterType',
time: 2020-05-31T21:59:35.116Z
},
InvalidParameterType: Expected params.UserAttributes[4].Value to be a string
at ParamValidator.fail (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:50:37)
at ParamValidator.validateType (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:232:10)
at ParamValidator.validateString (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:154:32)
at ParamValidator.validateScalar (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:130:21)
at ParamValidator.validateMember (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:94:21)
at ParamValidator.validateStructure (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:75:14)
at ParamValidator.validateMember (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:88:21)
at ParamValidator.validateList (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:103:14)
at ParamValidator.validateMember (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:90:21)
at ParamValidator.validateStructure (/var/runtime/node_modules/aws-sdk/lib/param_validator.js:75:14) {
code: 'InvalidParameterType',
time: 2020-05-31T21:59:35.116Z
}
],
time: 2020-05-31T21:59:35.173Z
}
END RequestId: 6e50fdb4-e437-4b84-be7b-3caaeb5b0a98
REPORT RequestId: 6e50fdb4-e437-4b84-be7b-3caaeb5b0a98 Duration: 122.82 ms Billed Duration: 200 ms Memory Size: 128 MB Max Memory Used: 80 MB Init Duration: 356.12 ms
发现此帖子cognito admin not giving error。 @thopaw的建议解决了我遇到的问题。
通过将其更改为promise(),它可以按预期工作。谢谢你们的时间。
如果有人遇到此问题,下面是更新的代码。
exports.handler = async (event, context) => {
console.log('starts');
var data;
try {
const data = await cognito.adminCreateUser(params).promise();
} catch (error) {
console.log(error);
}
};