ラムダ関数を記述しました。 この関数はs3Bucket = "my-lambda"にアップロードされ、hello-lambda-roleロールとregionName = "us-west-2"にマップされます。AWS Lambda:Javaを使用してLambda関数からS3バケットにアクセスする方法
私は、「hello-lambda-role」というポリシーをマップしていて、「eu-west-1」の領域にあるs3Bucket = "some-other"にアクセスしたかったのです。
私はAmazonS3Clientを使用しているAPIクラスです。私の意図は、バケツから何らかのファイルを取得することです。しかし、その前に私は接続を行う必要があります。
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);
}
}
ここでは、バケットを一覧表示するクラスです。
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;
}
}
? –
コードにアクセスキーと秘密キーを配置することはパターンに反します。 AWSの外部でコードを実行するときは '〜/ .aws/credentials'ファイルに配置し、EC2またはLambdaで実行する場合はIAMロールを使用する必要があります。 –