Swift
Swift
Call an AWS Lambda Function
See more AWS Misc Examples
Demonstrates how to call an AWS Lambda function.Chilkat Swift Downloads
func chilkatTest() {
var success: Bool = false
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
let rest = CkoRest()!
// Connect to the Amazon AWS REST server.
// such as https://email.us-west-2.amazonaws.com/
var bTls: Bool = true
var port: Int = 443
var bAutoReconnect: Bool = true
// -------------------------------------------------------------------------------------------
// Note: The source of the lambda function (hosted on AWS) is shown at the bottom of this page.
// --------------------------------------------------------------------------------------------
// If your lambda function URL is: https://itwxyj3vd6gjtaerbfqnfccs2e0fplzh.lambda-url.us-west-2.on.aws/
// then use just the domain part here:
success = rest.connect(hostname: "itwxyj3vd6gjtaerbfqnfccs2e0fplzh.lambda-url.us-west-2.on.aws", port: port, tls: bTls, autoReconnect: bAutoReconnect)
// Provide AWS credentials for the REST call.
let authAws = CkoAuthAws()!
authAws.accessKey = "AWS_ACCESS_KEY"
authAws.secretKey = "AWS_SECRET_KEY"
// the region should match our domain above..
authAws.region = "us-west-2"
authAws.serviceName = "lambda"
rest.setAuthAws(authProvider: authAws)
let json = CkoJsonObject()!
json.updateString(jsonPath: "name", value: "Benny")
rest.addHeader(name: "Content-Type", value: "application/json")
let sbRequestBody = CkoStringBuilder()!
json.emitSb(sb: sbRequestBody)
let sbResponseBody = CkoStringBuilder()!
success = rest.fullRequestSb(httpVerb: "POST", uriPath: "/", requestBody: sbRequestBody, responseBody: sbResponseBody)
if success == false {
print("\(rest.lastErrorText!)")
return
}
var statusCode: Int = rest.responseStatusCode.intValue
if statusCode >= 400 {
print("Response Status Code: \(statusCode)")
print("Response Body: \(sbResponseBody.getAsString()!)")
print("Failed.")
return
}
print("Response Body:")
print("\(sbResponseBody.getAsString()!)")
}