33import com .amazonaws .services .lambda .runtime .Context ;
44import com .amazonaws .services .lambda .runtime .RequestHandler ;
55import java .io .IOException ;
6+ import java .net .URI ;
7+ import java .net .http .HttpClient ;
8+ import java .net .http .HttpRequest ;
9+ import java .net .http .HttpResponse ;
10+ import java .util .HashMap ;
611import java .util .Map ;
7- import okhttp3 .OkHttpClient ;
8- import okhttp3 .Request ;
9- import okhttp3 .Response ;
1012import org .json .JSONObject ;
1113import software .amazon .awssdk .services .s3 .S3Client ;
12- import software .amazon .awssdk .services .s3 .model .HeadBucketRequest ;
14+ import software .amazon .awssdk .services .s3 .model .ListBucketsResponse ;
1315import software .amazon .awssdk .services .s3 .model .S3Exception ;
1416
1517public class LambdaHandler implements RequestHandler <Object , Map <String , Object >> {
1618
17- private final OkHttpClient client = new OkHttpClient ();
19+ HttpClient client = HttpClient . newHttpClient ();
1820 private final S3Client s3Client = S3Client .create ();
1921
2022 @ Override
@@ -36,35 +38,30 @@ public Map<String, Object> handleRequest(Object input, Context context) {
3638 responseBody .put ("traceId" , traceId );
3739
3840 // Make a remote call using OkHttp
39- System .out .println ("Making a remote call using OkHttp" );
40- String url = "https://www.amazon.com" ;
41- Request request = new Request .Builder ().url (url ).build ();
42-
43- try (Response response = client .newCall (request ).execute ()) {
41+ System .out .println ("Making a remote call using Java HttpClient" );
42+ String url = "https://aws.amazon.com/" ;
43+ HttpRequest request = HttpRequest .newBuilder ()
44+ .uri (URI .create (url ))
45+ .GET ()
46+ .build ();
47+ try {
48+ HttpResponse <String > response = client .send (request , HttpResponse .BodyHandlers .ofString ());
49+ System .out .println ("Response status code: " + response .statusCode ());
4450 responseBody .put ("httpRequest" , "Request successful" );
45- } catch (IOException e ) {
46- context . getLogger (). log ("Error: " + e .getMessage ());
51+ } catch (Exception e ) {
52+ System . err . println ("Error: " + e .getMessage ());
4753 responseBody .put ("httpRequest" , "Request failed" );
4854 }
4955 System .out .println ("Remote call done" );
5056
51- // Make a S3 HeadBucket call to check whether the bucket exists
52- System .out .println ("Making a S3 HeadBucket call" );
53- String bucketName = "SomeDummyBucket" ;
57+ // Make a S3 ListBuckets call to list the S3 buckets in the account
58+ System .out .println ("Making a S3 ListBuckets call" );
5459 try {
55- HeadBucketRequest headBucketRequest = HeadBucketRequest .builder ().bucket (bucketName ).build ();
56- s3Client .headBucket (headBucketRequest );
57- responseBody .put ("s3Request" , "Bucket exists and is accessible: " + bucketName );
60+ ListBucketsResponse listBucketsResponse = s3Client .listBuckets ();
61+ responseBody .put ("s3Request" , "ListBuckets successful" );
5862 } catch (S3Exception e ) {
59- if (e .statusCode () == 403 ) {
60- responseBody .put ("s3Request" , "Access denied to bucket: " + bucketName );
61- } else if (e .statusCode () == 404 ) {
62- responseBody .put ("s3Request" , "Bucket does not exist: " + bucketName );
63- } else {
64- System .err .println ("Error checking bucket: " + e .awsErrorDetails ().errorMessage ());
65- responseBody .put (
66- "s3Request" , "Error checking bucket: " + e .awsErrorDetails ().errorMessage ());
67- }
63+ System .err .println ("Error listing buckets: " + e .awsErrorDetails ().errorMessage ());
64+ responseBody .put ("s3Request" , "Error listing buckets: " + e .awsErrorDetails ().errorMessage ());
6865 }
6966 System .out .println ("S3 HeadBucket call done" );
7067
0 commit comments