I have gone through the question titled "Setting the AWS region programmatically 1" but it doesn't provide all the answers I need.
Q1: I'm getting a SDKClientException-Unable to find a region via the region provider chain. What am I doing wrong? or is there a typo that I missed.
public class CreateS3Bucket { public static void main(String[] args) throws IOException { BasicAWSCredentials creds = new BasicAWSCredentials("aws-access-key", "aws-secret-key"); AmazonS3 s3Client = AmazonS3ClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(creds)).build(); Region region = Region.getRegion(Regions.US_EAST_1); s3Client.setRegion(region); try { String bucketName = "testBucket" + UUID.randomUUID(); s3Client.createBucket(bucketName); System.out.println("Bucket Created Successfully."); } catch(AmazonServiceException awse) { System.out.println("This means that your request made it AWS S3 but got rejected"); System.out.println("Error Message:" +awse.getMessage()); System.out.println("Error Message:" +awse.getErrorCode()); System.out.println("Error Message:" +awse.getErrorType()); System.out.println("Error Message:" +awse.getRequestId()); } catch (AmazonClientException ace) { System.out.println("The Amazon Client encountered an Error with network Connectivity"); System.out.println("Error Message:" + ace.getMessage()); } } }
Q2: What code changes needs to be done if I want to build a Lambda Function out of it? I'm aware how to create a lambda function and roles that it needs. Just need to know if the code that I have written needs to changed. How should I implement the LambdaFuctionHandler class as below:
import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestHandler; public class LambdaFunctionHandler implements RequestHandler<String, String> { @Override public String handleRequest(String input, Context context) { context.getLogger().log("Input: " + input); return null; } }