2023-07-31 16:17:53 -04:00
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
/**
* Before running this C++ code example, set up your development environment, including your credentials.
*
* For more information, see the following documentation topic:
*
* https://docs.aws.amazon.com/sdk-for-cpp/v1/developer-guide/getting-started.html
*
**/
// snippet-start:[cpp.example_code.lambda.hello_lambda]
# include <aws/core/Aws.h>
# include <aws/lambda/LambdaClient.h>
# include <aws/lambda/model/ListFunctionsRequest.h>
# include <iostream>
/*
* A "Hello Lambda" starter application which initializes an AWS Lambda (Lambda) client and lists the Lambda functions.
*
* main function
*
* Usage: 'hello_lambda'
*
*/
int main ( int argc , char * * argv ) {
Aws : : SDKOptions options ;
2023-08-08 13:03:15 -04:00
// Optionally change the log level for debugging.
// options.loggingOptions.logLevel = Utils::Logging::LogLevel::Debug;
Aws : : InitAPI ( options ) ; // Should only be called once.
2023-07-31 16:17:53 -04:00
int result = 0 ;
{
Aws : : Client : : ClientConfiguration clientConfig ;
// Optional: Set to the AWS Region (overrides config file).
// clientConfig.region = "us-east-1";
Aws : : Lambda : : LambdaClient lambdaClient ( clientConfig ) ;
std : : vector < Aws : : String > functions ;
Aws : : String marker ; // Used for pagination.
do {
Aws : : Lambda : : Model : : ListFunctionsRequest request ;
if ( ! marker . empty ( ) ) {
request . SetMarker ( marker ) ;
}
Aws : : Lambda : : Model : : ListFunctionsOutcome outcome = lambdaClient . ListFunctions (
request ) ;
if ( outcome . IsSuccess ( ) ) {
const Aws : : Lambda : : Model : : ListFunctionsResult & listFunctionsResult = outcome . GetResult ( ) ;
std : : cout < < listFunctionsResult . GetFunctions ( ) . size ( )
< < " lambda functions were retrieved. " < < std : : endl ;
for ( const Aws : : Lambda : : Model : : FunctionConfiguration & functionConfiguration : listFunctionsResult . GetFunctions ( ) ) {
functions . push_back ( functionConfiguration . GetFunctionName ( ) ) ;
std : : cout < < functions . size ( ) < < " "
< < functionConfiguration . GetDescription ( ) < < std : : endl ;
std : : cout < < " "
< < Aws : : Lambda : : Model : : RuntimeMapper : : GetNameForRuntime (
functionConfiguration . GetRuntime ( ) ) < < " : "
< < functionConfiguration . GetHandler ( )
< < std : : endl ;
}
marker = listFunctionsResult . GetNextMarker ( ) ;
} else {
std : : cerr < < " Error with Lambda::ListFunctions. "
< < outcome . GetError ( ) . GetMessage ( )
< < std : : endl ;
result = 1 ;
break ;
}
} while ( ! marker . empty ( ) ) ;
}
2023-08-08 13:03:15 -04:00
Aws : : ShutdownAPI ( options ) ; // Should only be called once.
2023-07-31 16:17:53 -04:00
return result ;
}
// snippet-end:[cpp.example_code.lambda.hello_lambda]