1
1
package example ;
2
2
3
3
import com .amazonaws .services .lambda .runtime .Context ;
4
- import com .amazonaws .services .lambda .runtime .LambdaLogger ;
5
4
import com .amazonaws .services .lambda .runtime .RequestHandler ;
6
- import com .amazonaws .services .lambda .runtime .events .SQSEvent ;
7
- import com .amazonaws .services .lambda .runtime .events .SQSEvent .SQSMessage ;
8
5
9
- import software .amazon .awssdk .services .lambda .model .GetAccountSettingsRequest ;
10
- import software .amazon .awssdk .services .lambda .model .GetAccountSettingsResponse ;
11
- import software .amazon .awssdk .services .lambda .model .ServiceException ;
12
- import software .amazon .awssdk .services .lambda .LambdaAsyncClient ;
13
- import software .amazon .awssdk .services .lambda .model .AccountUsage ;
14
-
15
- import com .google .gson .Gson ;
16
- import com .google .gson .GsonBuilder ;
6
+ import java .util .Map ;
17
7
18
8
import org .slf4j .Logger ;
19
9
import org .slf4j .LoggerFactory ;
20
10
21
- import java . lang . StringBuilder ;
22
- import java . util . Map ;
23
- import java . util . List ;
24
- import java . util . concurrent . CompletableFuture ;
11
+ import software . amazon . awssdk . regions . Region ;
12
+ import software . amazon . awssdk . services . lambda . LambdaClient ;
13
+ import software . amazon . awssdk . services . lambda . model . GetAccountSettingsResponse ;
14
+ import software . amazon . awssdk . services . lambda . model . LambdaException ;
25
15
26
16
// Handler value: example.Handler
27
- public class Handler implements RequestHandler <SQSEvent , String >{
28
- private static final Logger logger = LoggerFactory .getLogger (Handler .class );
29
- private static final Gson gson = new GsonBuilder ().setPrettyPrinting ().create ();
30
- private static final LambdaAsyncClient lambdaClient = LambdaAsyncClient .create ();
31
- public Handler (){
32
- CompletableFuture <GetAccountSettingsResponse > accountSettings = lambdaClient .getAccountSettings (GetAccountSettingsRequest .builder ().build ());
33
- try {
34
- GetAccountSettingsResponse settings = accountSettings .get ();
35
- } catch (Exception e ) {
36
- e .getStackTrace ();
37
- }
38
- }
39
- @ Override
40
- public String handleRequest (SQSEvent event , Context context )
41
- {
42
- String response = new String ();
43
- // call Lambda API
44
- logger .info ("Getting account settings" );
45
- CompletableFuture <GetAccountSettingsResponse > accountSettings =
46
- lambdaClient .getAccountSettings (GetAccountSettingsRequest .builder ().build ());
47
- // log execution details
48
- logger .info ("ENVIRONMENT VARIABLES: {}" , gson .toJson (System .getenv ()));
49
- logger .info ("CONTEXT: {}" , gson .toJson (context ));
50
- logger .info ("EVENT: {}" , gson .toJson (event ));
51
- // process event
52
- for (SQSMessage msg : event .getRecords ()){
53
- logger .info (msg .getBody ());
54
- }
55
- // process Lambda API response
56
- try {
57
- GetAccountSettingsResponse settings = accountSettings .get ();
58
- response = gson .toJson (settings .accountUsage ());
59
- logger .info ("Account usage: {}" , response );
60
- } catch (Exception e ) {
61
- e .getStackTrace ();
17
+ public class Handler implements RequestHandler <Map <String ,String >, String > {
18
+
19
+ private static final Logger logger = LoggerFactory .getLogger (Handler .class );
20
+ private static final Region region = Region .US_EAST_1 ;
21
+ private static final LambdaClient awsLambda = LambdaClient .builder ()
22
+ .region (region )
23
+ .build ();
24
+
25
+ @ Override
26
+ public String handleRequest (Map <String ,String > event , Context context ) {
27
+
28
+ // log execution details
29
+ logger .info ("ENVIRONMENT VARIABLES: " + System .getenv ());
30
+ logger .info ("EVENT: " + event );
31
+ logger .info ("CONTEXT: " + context );
32
+
33
+ // process event
34
+ GetAccountSettingsResponse response ;
35
+ try {
36
+ response = awsLambda .getAccountSettings ();
37
+ System .out .println ("Total code size for your account is " + response .accountLimit ().totalCodeSize () + " bytes" );
38
+ } catch (LambdaException e ) {
39
+ System .err .println (e .getMessage ());
40
+ System .exit (1 );
41
+ }
42
+ return "200 OK" ;
62
43
}
63
- return response ;
64
- }
65
- }
44
+ }
0 commit comments