にAWSラムダ関数を呼び出すためにはどうすればスウィフトにラムダ関数を起動する方法上の任意のドキュメントや例を見つけることができませんが、私はObjective-Cのと私を使用してドキュメントから推定する試みましたそれでもエラーが発生して「M:はスウィフト
"Error in myFunction: ValidationException: Supplied AttributeValue is empty, must contain exactly one of the supported datatypes"
スクリプトがDynamoDBのに書き込もうとするので、私は迅速からラムダ関数を呼び出すときに私が正しく機能するためにパラメータを渡していないよと思われるが、の1パラメータは空です(このlambdaスクリプトは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、それは迅速なラムダを使用する私のアプリケーションの1つからの悪いコピー貼り付けでした。私は今例からそれを削除しました。このアプリケーションでは、lambdaリクエストをViewControllerにプロパティとして格納しています。これにより、必要に応じて現在のリクエストをキャンセルできます。 –
誰かが助けることができるなら、アンドロイドのために同じを見つける! –