Sample code for 30+ languages & platforms
Swift

Call an AWS Lambda Function

See more AWS Misc Examples

Demonstrates how to call an AWS Lambda function.

Chilkat Swift Downloads

Swift

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()!)")

}