如何利用aws lambda 向SNS发布消息 ,请用java实现
时间: 2024-02-20 17:00:29 浏览: 22
好的,以下是Java代码实现:
```java
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.amazonaws.services.lambda.runtime.events.SNSEvent;
import com.amazonaws.services.sns.AmazonSNS;
import com.amazonaws.services.sns.AmazonSNSClientBuilder;
import com.amazonaws.services.sns.model.PublishRequest;
import com.amazonaws.services.sns.model.PublishResult;
public class LambdaFunctionHandler implements RequestHandler<SNSEvent, Object> {
private final AmazonSNS snsClient = AmazonSNSClientBuilder.defaultClient();
public Object handleRequest(SNSEvent event, Context context) {
for (SNSEvent.SNSRecord record : event.getRecords()) {
String message = record.getSNS().getMessage();
String topicArn = "arn:aws:sns:us-east-1:123456789012:MyTopic"; // 替换为你的SNS主题ARN
PublishRequest publishRequest = new PublishRequest(topicArn, message);
PublishResult publishResult = snsClient.publish(publishRequest);
System.out.println("MessageId: " + publishResult.getMessageId());
}
return null;
}
}
```
在Lambda函数中,我们首先创建AmazonSNS客户端,然后为每个SNS记录发布消息。使用`event.getRecords()`获取SNS事件的记录列表,使用`record.getSNS().getMessage()`获取消息内容,将其发布到指定的SNS主题中,最后打印发布结果。
需要注意的是,这里的SNS主题ARN需要替换为你自己的ARN。