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

}
JavaScript
export const handler = async (event) => {

    let body = "Hello World";

    if (event.body) {
        const input = JSON.parse(event.body);
        if (input.name) {
            body = "Hello " + input.name;
        }
    }

    return {
        statusCode: 200,
        headers: {
            "Content-Type": "application/json"
        },
        body: JSON.stringify({
            message: body
        })
    };
};