我找不到任何关于如何在Swift中调用Lambda函数的文档或示例,但我已经尝试从Objective-C的文档中推断出来,但仍然遇到错误:
"myFunction中的错误:ValidationException:提供的AttributeValue为空,必须恰好包含支持的数据类型之一"
看起来当我从Swift中调用Lambda函数时,我没有正确地传递参数给函数,因为脚本尝试写入DynamoDB,但其中一个参数为空(当我在javascript/node中调用此Lambda脚本时,它可以正常工作)。
let lambda = AWSLambda.defaultLambda()
let request = AWSLambdaInvocationRequest()
var context = [String: String]()
let jsonString = "{\"email\":\"example@example.com\",\"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
})