【发布时间】:2021-03-16 07:49:59
【问题描述】:
如何使用 Java SDK 为现有 AWS Lambda 函数添加新触发器?
我想添加S3 trigger。
我有将图像从一种格式转换为另一种格式的程序。 我首先有两个桶,当我在第二个添加源图像时,我想得到结果。
任何示例都将不胜感激。
谢谢。
像这样触发:
我尝试这样做,但它不起作用:
final AWSLambda client = AWSLambdaClientBuilder.standard()
.withCredentials(credentials)
.build();
client.listFunctions().getFunctions()
.stream()
.filter(f -> f.getFunctionName().equals(FUNCTION_NAME))
.findFirst()
.ifPresent(lambda -> {
final AddPermissionRequest addPermissionRequest = new AddPermissionRequest();
addPermissionRequest.setStatementId("s3triggerId");
addPermissionRequest.withSourceArn("arn:aws:s3:::" + INPUT_BUCKET_NAME);
addPermissionRequest.setAction("lambda:InvokeFunction");
addPermissionRequest.setPrincipal("events.amazonaws.com");
addPermissionRequest.setFunctionName(lambda.getFunctionName());
AddPermissionResult addPermissionResult = client.addPermission(addPermissionRequest);
System.out.println("Trigger was added to lambda " + addPermissionResult.getStatement());
});
【问题讨论】:
-
我尝试这样做,但它不起作用:什么不起作用?
-
我的 lambda 中没有任何触发器。
标签: java amazon-web-services amazon-s3 aws-lambda