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