Ryan Fitzgerald's answer gives me some errors during compilation, but I had success with this version:
First, I have an initialization function with access credentials. Please note that this is not the recommended secure access method for production code, but it is suitable for testing and other purposes. It also assumes that you have a Constants.swift file in which you define the constants listed:
func initializeLambda() { let credentialsProvider = AWSStaticCredentialsProvider.init(accessKey:Constants.AWS_ACCESS_KEY, secretKey: Constants.AWS_SECRET_KEY) let defaultServiceConfiguration = AWSServiceConfiguration(region: Constants.AWS_REGION, credentialsProvider: credentialsProvider) AWSServiceManager.defaultServiceManager().defaultServiceConfiguration = defaultServiceConfiguration }
Otherwise, we can provide a version similar to the previous version. I deleted the "let task" because the "task" is not used in his example. In addition, I have included the logic circuit of some JSON parsing, which you are likely to do inside the call task. Finally, I changed to continueWithBlock (). If you use continueWithSuccessBlock (), you will not enter this block if Amazon Lambda reaches its timeout or if something goes wrong with the request and, as a rule, you want these situations to be handled here.
self.initializeLambda() //Call our previously written initialization function let invocationRequest = AWSLambdaInvokerInvocationRequest() invocationRequest.functionName = "functionName" invocationRequest.invocationType = AWSLambdaInvocationType.RequestResponse invocationRequest.payload = ["key1" : "value1", "key2" : "value2"] let lambdaInvoker = AWSLambdaInvoker.defaultLambdaInvoker() lambdaInvoker.invoke(invocationRequest).continueWithBlock() { (task: AWSTask) -> AWSTask in print("response: ", task.result) //In here you'll likely be parsing a JSON payload if let payload: AnyObject = task.result?.payload { if let error: AnyObject = payload.objectForKey("error") { //If there is an error key in the JSON dictionary... } else { //If the JSON dictionary has no error key... } return task; } }
Tested and tested as functional on Swift 2.2 in Xcode 7.3.
Ryan davis
source share