Sample code for 30+ languages & platforms
Go

Call an AWS Lambda Function

See more AWS Misc Examples

Demonstrates how to call an AWS Lambda function.

Chilkat Go Downloads

Go
    success := false

    //  This example requires the Chilkat API to have been previously unlocked.
    //  See Global Unlock Sample for sample code.

    rest := chilkat.NewRest()

    //  Connect to the Amazon AWS REST server.
    //  such as https://email.us-west-2.amazonaws.com/
    bTls := true
    port := 443
    bAutoReconnect := 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("itwxyj3vd6gjtaerbfqnfccs2e0fplzh.lambda-url.us-west-2.on.aws",port,bTls,bAutoReconnect)

    //  Provide AWS credentials for the REST call.
    authAws := chilkat.NewAuthAws()
    authAws.SetAccessKey("AWS_ACCESS_KEY")
    authAws.SetSecretKey("AWS_SECRET_KEY")
    //  the region should match our domain above..
    authAws.SetRegion("us-west-2")
    authAws.SetServiceName("lambda")

    rest.SetAuthAws(authAws)

    json := chilkat.NewJsonObject()
    json.UpdateString("name","Benny")

    rest.AddHeader("Content-Type","application/json")

    sbRequestBody := chilkat.NewStringBuilder()
    json.EmitSb(sbRequestBody)

    sbResponseBody := chilkat.NewStringBuilder()
    success = rest.FullRequestSb("POST","/",sbRequestBody,sbResponseBody)
    if success == false {
        fmt.Println(rest.LastErrorText())
        rest.DisposeRest()
        authAws.DisposeAuthAws()
        json.DisposeJsonObject()
        sbRequestBody.DisposeStringBuilder()
        sbResponseBody.DisposeStringBuilder()
        return
    }

    statusCode := rest.ResponseStatusCode()
    if statusCode >= 400 {
        fmt.Println("Response Status Code: ", statusCode)
        fmt.Println("Response Body: ", *sbResponseBody.GetAsString())
        fmt.Println("Failed.")
        rest.DisposeRest()
        authAws.DisposeAuthAws()
        json.DisposeJsonObject()
        sbRequestBody.DisposeStringBuilder()
        sbResponseBody.DisposeStringBuilder()
        return
    }

    fmt.Println("Response Body:")
    fmt.Println(*sbResponseBody.GetAsString())

    rest.DisposeRest()
    authAws.DisposeAuthAws()
    json.DisposeJsonObject()
    sbRequestBody.DisposeStringBuilder()
    sbResponseBody.DisposeStringBuilder()
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
        })
    };
};