non riesco a trovare alcuna documentazione o esempi su come richiamare una funzione lambda a Swift ma ho cercato di estrapolare dalla documentazione usando Objective-C e I 'm ancora ricevendo errori:come richiamare una funzione AWS Lambda a Swift
"Error in myFunction: ValidationException: Supplied AttributeValue is empty, must contain exactly one of the supported datatypes"
sembra che io non sto passando i parametri alla funzione correttamente quando invoco la funzione lambda dalla rapida perché lo script tenta di scrivere DynamoDB ma uno dei i parametri sono vuoti (questo script lambda funziona quando lo invoco in javascript/node).
let lambda = AWSLambda.defaultLambda()
let request = AWSLambdaInvocationRequest()
var context = [String: String]()
let jsonString = "{\"email\":\"[email protected]\",\"name\":\"example\"}"
let jsonData = jsonString.dataUsingEncoding(NSUTF8StringEncoding)
request.clientContext = jsonData?.base64EncodedStringWithOptions(NSDataBase64EncodingOptions.Encoding64CharacterLineLength)
request.functionName = "myFunction"
lambda.invoke(request).continueWithBlock({
(currentTask: AWSTask!) -> AWSTask in
if (currentTask.error != nil) {
// failed to execute.
print("Error executing: ", currentTask.error)
task.setError(currentTask.error)
} else {
print("token: ", currentTask.result)
task.setResult(currentTask.result)
}
return currentTask
})
Opps, si trattava di una brutta copia della copia da una delle mie app che utilizza lambda da swift. L'ho rimosso dall'esempio ora. Nell'app viene archiviata la richiesta lambda come proprietà sul ViewController, che consente di annullare la richiesta corrente se necessario. –
Trovare lo stesso per l'androide, se qualcuno può aiutare! –