使用SNS通知触发lambda无法正常工作

时间:2017-07-31 15:34:15

标签: java amazon-web-services aws-lambda amazon-sns

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"
                }
            }
        }
    ]
}
  • 处理程序:我是亚马逊网络服务的新手,我做了一个示例lambda。当我使用带有任意随机字符串的cli(或Web控制台)调用它时,它可以工作并显示lambda网页上输入字符串的长度。然后我将它订阅到SNS主题并尝试发布带有随机字符串的事件。我无法在网页上看到结果(lambda),即字符串的长度未显示。如何知道lambda正在正确处理字符串?

1 个答案:

答案 0 :(得分:0)

显然,aws lambda被正确调用了,之所以我在处理程序中显示的字符串的长度因为我在lambda内部的参数而没有显示,为了处理某些内容来自SNS的输入我必须在参数中接受SNSevent类型的事件,然后再处理它。