AWS Lambda: Comment accéder au compartiment S3 à partir de la fonction Lambda à l'aide de Java

J'ai écrit une fonction Lambda.
Cette fonction est téléchargé dans s3Bucket = "mon-lambda", qui est mappé sur le rôle de bonjour-lambda-rôle et le regionName = "us-ouest-2".

Maintenant, je voulais accès s3Bucket="some-autres" où nous avons cartographié la Politique avec "bonjour-lambda-rôle" et c'est dans la région "eu-west-1".

Ici est la classe de l'API, je suis en utilisant AmazonS3Client. Mon intention est d'obtenir des fichiers dans le seau "de certains autres". Mais avant cela, j'ai besoin de faire la connexion.

import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;

public class LambdaFunctionHandler implements RequestHandler<Request, Response> {

    public Response handleRequest(Request request, Context context) {
        String greetingString = String.format("Hello %s %s.",
                request.firstName, request.lastName);
        return new Response(greetingString);
    }

}

Ici est la classe qui liste le seau.

public class Test{
private static final Log logger = LogFactory.getLog(InvokeLambda.class);
private static final String awsAccessKeyId = "XXXXX";
private static final String awsSecretAccessKey = "XXXXX";
private static final String regionName = "eu-west-1";
private static Region region;
private static AWSCredentials credentials;
private static AWSLambdaClient lambdaClient;
private static AmazonS3Client s3Client;
private static void init() {
credentials = new BasicAWSCredentials(awsAccessKeyId,
awsSecretAccessKey);
s3Client = (credentials == null) ? new AmazonS3Client()
: new AmazonS3Client(credentials);
region = Region.getRegion(Regions.fromName(regionName));
s3Client.setRegion(region);
lambdaClient = (credentials == null) ? new AWSLambdaClient()
: new AWSLambdaClient(credentials);
lambdaClient.setRegion(region);
//lambdaClient.configureRegion(Regions.US_WEST_2);
}
/**
* The entry point into the AWS lambda function.
*/
public static void main(String... args) {
init();
getExistingBucket();
}
private static Bucket getExistingBucket() {
List<Bucket> buckets = s3Client.listBuckets();
for (Bucket bucket : buckets) {
logger.error(bucket.getName());
}
return null;
}
}

source d'informationauteur