2016-10-27 4 views
1

Ошибка:AWS Lambda Swift 3 Ошибка

ERROR HERE: Optional(Error Domain=com.amazonaws.AWSJSONBuilderErrorDomain Code=4 "serialized object is neither a valid json Object nor NSData object: " UserInfo={NSLocalizedDescription=serialized object is neither a valid json Object nor NSData object: })

Код:

import AWSLambda 
import Foundation 
struct AWSHelper{ 
let lambda = AWSLambda.default() 
let APPLICATION_NAME = "MYAPPNAME" 
init(){ 

} 

func getFunctionName(funcName: String) -> String{ 
    return "\(funcName)_\(APPLICATION_NAME)" 
} 

func login(facebookID: String,cognitoID:String, callback:@escaping (Bool) -> Void){ 
    let req: AWSLambdaInvocationRequest = AWSLambdaInvocationRequest(); 
    req.invocationType = AWSLambdaInvocationType.requestResponse 
    req.payload = ["cognitoID" : cognitoID, "facebookID" : facebookID] 
    req.functionName = getFunctionName(funcName: "Login") 

    lambda.invoke(req) { (response: AWSLambdaInvocationResponse?,error: Error?) in 
     print("ERROR HERE: \(error)") 
     let payload = response?.payload 
     print("PAYLOAD HERE: \(payload)") 
     callback(true) 
    } 

} 
} 

Я посмотрел на мои журналы лямбда, и я могу видеть, что я даже не вызвав метод. В чем проблема, с которой я столкнулся? У меня есть другое подозрение, что это может быть cognito здесь: AWS Cognito integration swift3 Refresh provides ResourceNotFoundException
Но я смущен, если я могу получить идентификатор идентификатора, что происходит не так? Теперь я думаю, что это может быть мой вызов лямбдой.

ответ

1

Я не знаю, поможет ли это вам. Глядя на ваш запрос на вызов, у него отсутствуют два элемента. ClientContext и Qualifier. Они будут пусты.

В 1292 в AWSSerialization имеет:

  [self failWithCode:AWSJSONBuilderInvalidParameter description:[NSString stringWithFormat:@"serialized object is neither a valid json Object nor NSData object: %@",serializedJsonObject] error:error]; 

к сведению, что после того, как вы должны увидеть объект вы сериализацию. В вашей ошибке он пуст.

Возможно, используйте контрольную точку и обратную трассировку, чтобы увидеть, над чем она работает.

+0

На самом деле я не думаю, что это Лямбда больше. Если я вынимаю токен facebook, он жалуется, что моя роль unauth не разрешена, что также означает, что она выполняет команду правильно. Однако, когда я добавляю facebook, я получаю ошибку, поэтому я думаю, что это связано с моими учетными данными. – user2977578

+0

Я не знаю, что изменилось, но я перестал работать над ним в течение недели, и он начал работать ... Я посмотрю на свои различия и опубликую свои мысли в другом вопросе – user2977578