使用 SNS 通知触发 lambda 不起作用
Triggering a lambda using SNS notification not working
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 正在正确处理字符串?
显然,aws lambda 被正确调用,我在处理程序中显示的字符串的长度没有显示的原因是因为我在 lambda 中使用的参数,为了处理作为来自 SNS 的输入,我必须在参数中获取一个 SNSevent 类型的事件,然后再对其进行处理。
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 正在正确处理字符串?
显然,aws lambda 被正确调用,我在处理程序中显示的字符串的长度没有显示的原因是因为我在 lambda 中使用的参数,为了处理作为来自 SNS 的输入,我必须在参数中获取一个 SNSevent 类型的事件,然后再对其进行处理。