Я очень новичок в AWS.Я пытаюсь использовать Serverless и Cognito для регистрации нового пользователя.Я использую Apollo / GraphQL (и я вижу всю информацию, которую я хочу от внешнего интерфейса), но у меня есть все жестко запрограммировано, чтобы устранить любые ошибки запроса.Что касается меня, я не могу понять, почему я не могу зарегистрировать нового пользователя:
const { ApolloServer, gql } = require('apollo-server-lambda');
const AmazonCognitoIdentity = require('amazon-cognito-identity-js');
global.fetch = require('node-fetch');
const USER_POOL_ID = 'us-east-1_XXXXXXXXX';
const USER_POOL_APP_ID = 'XXXXXXXXXXXXXXXXXXXXXXXXXX';
const POOL_PARAMS = {
UserPoolId: USER_POOL_ID,
ClientId: USER_POOL_APP_ID
}
const UserPool = new AmazonCognitoIdentity.CognitoUserPool(POOL_PARAMS);
const typeDefs = gql`
type UserSignup {
email: String!
name: String!
password: String!
}
type Mutation {
signup(email: String!, name: String!, password: String!): UserSignup
}
`;
const resolvers = {
Mutation: {
signup: (parentVal, { email, name, password }) => {
console.log('I can alway see this log');
const attributeList = [];
const attributeEmail = new AmazonCognitoIdentity.CognitoUserAttribute({ Name: 'email', Value: 'email@email.com' });
const attributeName = new AmazonCognitoIdentity.CognitoUserAttribute({ Name: 'name', Value: 'mike' });
attributeList.push(attributeEmail);
attributeList.push(attributeName);
console.log('I can see these too ', attributeList);
console.log('This will return a function ', UserPool.signUp);
UserPool.signUp('email@email.com', 'P@ssw0rd!', attributeList, null, function(poolErr, poolResult) {
console.log('I never see a console.log from in here');
if (poolErr) {
console.log('ERROR: ', poolErr);
}
console.log('RESULT: ', poolResult);
return { email, name };
})
}
}
};
const server = new ApolloServer({ typeDefs, resolvers });
exports.graphql = server.createHandler();
Когда я запускаю свой sls logs
, я никогда не вижу ничего возвращающегося внутри моего UserPool.signUp
функция.Это всегда на линии прямо перед.Вот посмотрите на мой serverless.yml
файл, который я получил от этого ТАК сообщения .
service: AppName
provider:
name: aws
runtime: nodejs8.10
functions:
graphql:
handler: handler.graphql
events:
- http:
path: graphql
method: post
cors: true
integration: lambda
authorizer:
name: authorizer
arn: arn:aws:cognito-idp:us-east-1:XXXXXXXXXXXX:userpool/us-east-1_XXXXXXXXX
claims:
- email
Мне удалось создать нового пользователя с помощью запроса скручивания, поэтому я знаю, что он настроен прямо на стороне AWS.Прошло уже несколько ночей, и я собираюсь отказаться от Cognito и поехать с JWT.