Sample code for 30+ languages & platforms
Objective-C

Call an AWS Lambda Function

See more AWS Misc Examples

Demonstrates how to call an AWS Lambda function.

Chilkat Objective-C Downloads

Objective-C
#import <CkoRest.h>
#import <CkoAuthAws.h>
#import <CkoJsonObject.h>
#import <CkoStringBuilder.h>

BOOL success = NO;

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

CkoRest *rest = [[CkoRest alloc] init];

// Connect to the Amazon AWS REST server.
// such as https://email.us-west-2.amazonaws.com/
BOOL bTls = YES;
int port = 443;
BOOL bAutoReconnect = YES;

// -------------------------------------------------------------------------------------------
// 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: [NSNumber numberWithInt: port] tls: bTls autoReconnect: bAutoReconnect];

// Provide AWS credentials for the REST call.
CkoAuthAws *authAws = [[CkoAuthAws alloc] init];
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: authAws];

CkoJsonObject *json = [[CkoJsonObject alloc] init];
[json UpdateString: @"name" value: @"Benny"];

[rest AddHeader: @"Content-Type" value: @"application/json"];

CkoStringBuilder *sbRequestBody = [[CkoStringBuilder alloc] init];
[json EmitSb: sbRequestBody];

CkoStringBuilder *sbResponseBody = [[CkoStringBuilder alloc] init];
success = [rest FullRequestSb: @"POST" uriPath: @"/" requestBody: sbRequestBody responseBody: sbResponseBody];
if (success == NO) {
    NSLog(@"%@",rest.LastErrorText);
    return;
}

int statusCode = [rest.ResponseStatusCode intValue];
if (statusCode >= 400) {
    NSLog(@"%@%d",@"Response Status Code: ",statusCode);
    NSLog(@"%@%@",@"Response Body: ",[sbResponseBody GetAsString]);
    NSLog(@"%@",@"Failed.");
    return;
}

NSLog(@"%@",@"Response Body:");
NSLog(@"%@",[sbResponseBody GetAsString]);