Sample code for 30+ languages & platforms
C++

Call an AWS Lambda Function

See more AWS Misc Examples

Demonstrates how to call an AWS Lambda function.

Chilkat C++ Downloads

C++
#include <CkRest.h>
#include <CkAuthAws.h>
#include <CkJsonObject.h>
#include <CkStringBuilder.h>

void ChilkatSample(void)
    {
    bool success = false;

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

    CkRest rest;

    // Connect to the Amazon AWS REST server.
    // such as https://email.us-west-2.amazonaws.com/
    bool bTls = true;
    int port = 443;
    bool 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.
    CkAuthAws authAws;
    authAws.put_AccessKey("AWS_ACCESS_KEY");
    authAws.put_SecretKey("AWS_SECRET_KEY");
    // the region should match our domain above..
    authAws.put_Region("us-west-2");
    authAws.put_ServiceName("lambda");

    rest.SetAuthAws(authAws);

    CkJsonObject json;
    json.UpdateString("name","Benny");

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

    CkStringBuilder sbRequestBody;
    json.EmitSb(sbRequestBody);

    CkStringBuilder sbResponseBody;
    success = rest.FullRequestSb("POST","/",sbRequestBody,sbResponseBody);
    if (success == false) {
        std::cout << rest.lastErrorText() << "\r\n";
        return;
    }

    int statusCode = rest.get_ResponseStatusCode();
    if (statusCode >= 400) {
        std::cout << "Response Status Code: " << statusCode << "\r\n";
        std::cout << "Response Body: " << sbResponseBody.getAsString() << "\r\n";
        std::cout << "Failed." << "\r\n";
        return;
    }

    std::cout << "Response Body:" << "\r\n";
    std::cout << sbResponseBody.getAsString() << "\r\n";
    }