私はいくつかのラムダがSNSを通じて協力しています。 1つのラムダが要求を受信し、SNSにデータを送信します。別のラムダはSNSにサブスクライブされています。 JSオブジェクトだけの着信メッセージとしてJavaScriptで行うのは簡単でした。今私はラムダをJavaに書き直しています。私は、ハンドラで使用する型を探しています。AWSでSNSメッセージを処理する方法Javaで書かれたLambda?
はここで、λは次のようになります。 SNSMessageは型のプレースホルダです。
public class ArchiveRequestHandler implements RequestHandler<SNSMessage?, Void> {
@Override public Void handleRequest(SNSMessage? input, Context context) {
// do something with the message
return null;
}
}
これは、例えばメッセージがどのように見えるかされています
{
"Records": [
{
"EventVersion": "1.0",
"EventSubscriptionArn": "arn:aws:sns:EXAMPLE",
"EventSource": "aws:sns",
"Sns": {
"SignatureVersion": "1",
"Timestamp": "1970-01-01T00:00:00.000Z",
"Signature": "EXAMPLE",
"SigningCertUrl": "EXAMPLE",
"MessageId": "1234567-ee98-5cb9-9903-4c221d41eb5e",
"Message": "Hello from SNS!",
"MessageAttributes": {
"Test": {
"Type": "String",
"Value": "TestString"
},
"TestBinary": {
"Type": "Binary",
"Value": "TestBinary"
}
},
"Type": "Notification",
"UnsubscribeUrl": "EXAMPLE",
"TopicArn": "arn:aws:sns:EXAMPLE",
"Subject": "TestInvoke"
}
}
]
}
今、私はこれを解析するために自分のタイプを作成することができます確信しているが、私はこれを行うためのより標準的な方法がある期待していました。しかし、私はこのオブジェクトのように見えるラムダやSNS SDK依存関係に何も見つかりませんでした。
はそれを自分自身を試していないが、この回答は参考になりましたか? http://stackoverflow.com/a/32768081/611819 – dnault
http://docs.aws.amazon.com/lambda/latest/dg/with-sns-create-package.html ..メッセージを受け取るためにこの例を参照してくださいSNSeventオブジェクトから – notionquest
@notionquestありがとう!その答えは、pojoのサポートライブラリがあるということです。 – sm4