Ich versuche, den AWS Cognito User Pool in meiner AWS Lambda-Funktion zu verwenden. Ich sah in der Anleitung, dass Sie die amazon-cognito-identity.min.js in Ihren Code aufnehmen müssten, aber ich bin mir nicht sicher, wie dies in Node js zu tun ist. Ich benutze npm install für die externen Module, aber ich glaube nicht, dass aws-cognito-identity noch als Modul existiert.Nachricht AWSCognito.CognitoIdentityServiceProvider.CognitoUserPool keine Funktion in AWS Lambda
Ich habe aws-sdk installiert, aber die Funktion AWSCognito.CognitoIdentityServiceProvider.CognitoUserPool existiert nicht im SDK.
durch die Art und Weise, hier ist mein Code in Lambda:
'use strict';
var AWS= require('aws-sdk');
AWS.config.region = 'ap-northeast-1'; // Region
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: 'ap-northeast-1:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' // your identity pool id here
});
// Need to provide placeholder keys unless unauthorised user access is enabled for user pool
//AWSCognito.config.update({accessKeyId: 'anything', secretAccessKey: 'anything'})
var poolData = {
UserPoolId : 'us-east-1_xxxxxxxxx',
ClientId : 'xxxxxxxxxxxxxxxxxxxxxxxxx'
};
var userPool = new AWS.CognitoIdentityServiceProvider.CognitoUserPool(poolData);
module.exports.handler = function(event, context, cb) {
var attributeList = [];
var email = event.email;
var username=event.username;
var password = event.password;
var dataEmail = {
Name : 'email',
Value : email
};
var dataPhoneNumber = {
Name : 'phone_number',
Value : '+15555555555'
};
var attributeEmail = new AWS.CognitoIdentityServiceProvider.CognitoUserAttribute(dataEmail);
var attributePhoneNumber = new AWS.CognitoIdentityServiceProvider.CognitoUserAttribute(dataPhoneNumber);
attributeList.push(attributeEmail);
attributeList.push(attributePhoneNumber);
userPool.signUp(username, password, attributeList, null, function(err, result){
if (err) {
alert(err);
return;
}
username = result.user;
}
); return cb(null, username);
};
und hier ist die Fehlermeldung erhalte ich, wenn die Funktion Lambda Prüfung:
{
"errorMessage": "AWS.CognitoIdentityServiceProvider.CognitoUserPool is not a function",
"errorType": "TypeError",
"stackTrace": [
"Module._compile (module.js:409:26)",
"Object.Module._extensions..js (module.js:416:10)",
"Module.load (module.js:343:32)",
"Function.Module._load (module.js:300:12)",
"Module.require (module.js:353:17)",
"require (internal/module.js:12:17)"
]
}
Versuchen Sie diesen Befehl "npm installieren -g" und dann – error2007s
überprüfen, die nicht so gut funktionieren:
Beachten Sie, dass Sie haben
ändern. Das Problem ist, dass die Funktion selbst nicht innerhalb des aws-sdk Quellcodes für Javascript gefunden wird. Ich kann es in der Datei amazon-cognito-identity.min.js sehen. Ich denke, dass ich dieses Bit in meinen Code kopieren kann, aber es fühlt sich nicht an, als wäre es die richtige Lösung. –
hat gerade festgestellt, dass die serverseitige Implementierung noch nicht verfügbar ist bis GA: https://forums.aws.amazon.com/thread.jspa?threadID=233825&tstart=0 –