Как исправить тайм-аут запроса при попытке зарегистрировать пользователя в Cognito через .net - PullRequest
0 голосов
/ 26 февраля 2019

Кто-нибудь знает, как исправить время ожидания запроса по шлюзу (504) при попытке зарегистрировать пользователя в cognito?Я использую его с шлюзом AWS Api.локально он работает без проблем, но когда я загружаю его в лямбду AWS, он получает тайм-аут запроса.

Когда у меня есть код ниже с тайм-аутом ожидания.Когда я покидаю ожидание, оно не истечет, но также не зарегистрирует пользователя в Cognito.

  private static readonly string _clientId = DotNetEnv.Env.GetString("AWS_CLIENT_ID", null);
    private static readonly string _poolId = DotNetEnv.Env.GetString("AWS_USER_POOL", null);

    private static AmazonCognitoIdentityProviderClient CreateCognitoClient()
    {
        return new AmazonCognitoIdentityProviderClient(new AnonymousAWSCredentials());
    }

    /*
    * Method name: regsiterAsync
    * @param1: user (User), contains the basic userdata for registering a user (email, username, password, name)
    * returns: Response (object)
    **/
    public static async Task<Response> registerAsync(User user)
    {
        Response response = new Response();
        /*
        * Check if user already exists in our database.
        **/
        if (DbHandler.getUserByEmail(user.email) == null)
        {
            /*
            * Create a signup request to be sent to amazon cognito. 
            **/
            SignUpRequest signUpRequest = new SignUpRequest()
            {
                ClientId = _clientId,
                Username = user.email,
                Password = user.password,
                UserAttributes = new List<Amazon.CognitoIdentityProvider.Model.AttributeType>
                {
                    new AttributeType
                    {
                        Name = "email",
                        Value = user.email
                    }
                }
            };

            try
            {
                /*
                * Send singup request to amazon cognito
                * Returns a SingUpRequest(object)
                **/
                using(var cognitoClient = CreateCognitoClient())
                {
                    var signUpResult = await cognitoClient.SignUpAsync(signUpRequest);
                }
            }
            catch (Exception e)
            {
                /*
                * Incase that a error accoured by sending the SingUpRequest to cognito. Return a error response.
                **/
                response.status = "failed";
                response.message = e.Message;
                return response;
            }

            /*
            * Add user to our database
            **/
            User storedUser = DbHandler.addUser(user);

            /*
            * Return response with success data 
            **/
            response.message = "User successful registered.";
            response.data = storedUser;

            return response;
        }
        /*
        * In case the user already exists in our database. Return a non successful response 
        **/
        response.status = "failed";
        response.message = "User already exists.";

        return response;

1 Ответ

0 голосов
/ 26 февраля 2019

Вам необходимо увеличить значение timeout лямбда-функции в разделе Basic settings.Значение по умолчанию для тайм-аута составляет 3 секунды, и ваша функция занимает больше, чем это.

...