Java 使用SNS通知触发lambda无效 Handler:我对amazon web服务非常陌生,我做了一个演示lambda。当我使用cli(或web控制台)和任意随机字符串调用它时,它工作并在lambda的网页上显示输入字符串的长度。然后我订阅了一个SNS主题,并试图发布一个带有随机字符串的事件。我在网页上看不到结果(lambda),即未显示字符串的长度。如何知道lambda正在正确处理字符串
显然,aws lambda被正确调用,我在处理程序中显示的字符串长度之所以没有显示,是因为我在lambda中使用了参数,为了处理来自SNS的输入,我必须在参数中获取类型为SNSevent的事件,然后再进行处理。显然,aws lambda被正确调用,我在处理程序中显示的字符串长度之所以没有显示,是因为我在lambda中使用了参数,为了处理来自SNS的输入,我必须在参数中使用类型为SNSevent的事件,然后再进行处理。如果使用CloudFormation创建资源(或CLI),您需要授予Lambda权限才能被调用:aws Lambda add permission--region region\u NAME--function NAME Lambda\u function\u NAME--statement id SOME\u id--action Lambda:InvokeFunction--principal config.amazonaws.com。我检查了我的函数策略,结果是允许的,您能看到它并告诉我是否遗漏了什么吗。@KrishnaKumarRThis在SNS中。这是正确的。但是,您需要启用Lambda才能被调用。在前面的评论中提到了执行此操作的命令。您的问题的可能重复之处在于寻求类似于使用CloudFormation(或CLI)创建资源的解决方案,您需要授予Lambda权限才能被调用:aws Lambda add permission--region region\u NAME--function NAME Lambda\u function\u NAME--statement id SOME\u id--action Lambda:InvokeFunction--principal config.amazonaws.com。我检查了我的函数策略,结果是允许的,您能看到它并告诉我是否遗漏了什么吗。@KrishnaKumarRThis在SNS中。这是正确的。但是,您需要启用Lambda来调用。在前面的评论中提到了执行此操作的命令。您的问题的可能重复之处在于寻求类似的解决方案Java 使用SNS通知触发lambda无效 Handler:我对amazon web服务非常陌生,我做了一个演示lambda。当我使用cli(或web控制台)和任意随机字符串调用它时,它工作并在lambda的网页上显示输入字符串的长度。然后我订阅了一个SNS主题,并试图发布一个带有随机字符串的事件。我在网页上看不到结果(lambda),即未显示字符串的长度。如何知道lambda正在正确处理字符串,java,amazon-web-services,aws-lambda,amazon-sns,Java,Amazon Web Services,Aws Lambda,Amazon Sns,显然,aws lambda被正确调用,我在处理程序中显示的字符串长度之所以没有显示,是因为我在lambda中使用了参数,为了处理来自SNS的输入,我必须在参数中获取类型为SNSevent的事件,然后再进行处理。显然,aws lambda被正确调用,我在处理程序中显示的字符串长度之所以没有显示,是因为我在lambda中使用了参数,为了处理来自SNS的输入,我必须在参数中使用类型为SNSevent的事件,然后再进行处理。如果使用CloudFormation创建资源(或CLI),您需要授予Lambda
package example;
import java.io.*;
import com.amazonaws.services.lambda.runtime.Context;
public class LambdaMethodHandler {
public String handlerString(String input,Context context) {
System.out.println(input.length());
return input;
}
}
// This is my function policy
{
"Version": "2012-10-17",
"Id": "default",
"Statement": [
{
"Sid": "sns-xxxx-Sns_Lambda_test",
"Effect": "Allow",
"Principal": {
"Service": "sns.amazonaws.com"
},
"Action": "lambda:invokeFunction",
"Resource": "arn:aws:lambda:xxxxx:function:theSimplestLambda",
"Condition": {
"ArnLike": {
"AWS:SourceArn": "arn:aws:sns:eu-west-1:xxxx:Sns_Lambda_test"
}
}
}
]
}