Objective-C
Objective-C
Call an AWS Lambda Function
See more AWS Misc Examples
Demonstrates how to call an AWS Lambda function.Chilkat Objective-C Downloads
#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]);