3
3
import com .amazonaws .services .lambda .runtime .Context ;
4
4
import com .amazonaws .services .lambda .runtime .RequestHandler ;
5
5
import 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 ;
6
11
import java .util .Map ;
7
- import okhttp3 .OkHttpClient ;
8
- import okhttp3 .Request ;
9
- import okhttp3 .Response ;
10
12
import org .json .JSONObject ;
11
13
import software .amazon .awssdk .services .s3 .S3Client ;
12
- import software .amazon .awssdk .services .s3 .model .HeadBucketRequest ;
14
+ import software .amazon .awssdk .services .s3 .model .ListBucketsResponse ;
13
15
import software .amazon .awssdk .services .s3 .model .S3Exception ;
14
16
15
17
public class LambdaHandler implements RequestHandler <Object , Map <String , Object >> {
16
18
17
- private final OkHttpClient client = new OkHttpClient ();
19
+ HttpClient client = HttpClient . newHttpClient ();
18
20
private final S3Client s3Client = S3Client .create ();
19
21
20
22
@ Override
@@ -36,35 +38,30 @@ public Map<String, Object> handleRequest(Object input, Context context) {
36
38
responseBody .put ("traceId" , traceId );
37
39
38
40
// 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 ());
44
50
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 ());
47
53
responseBody .put ("httpRequest" , "Request failed" );
48
54
}
49
55
System .out .println ("Remote call done" );
50
56
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" );
54
59
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" );
58
62
} 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 ());
68
65
}
69
66
System .out .println ("S3 HeadBucket call done" );
70
67
0 commit comments