2017-10-16 17 views
0

私はアマゾンSNSアプリケーション(GCM)を持っています。新しいプラットフォームのエンドポイントが作成されたときにラムダ関数を実行するように設定しました。私は、ユーザーのデータベースにプラットフォームエンドポイントを追加する必要があります。エンドポイントに関連付けられたユーザー名は、「ユーザーデータ」として送信されます。SNSアプリケーションイベントエンドポイントからユーザーデータを取得する

ラムダ関数を使用して、エンドポイントarnをユーザーのDBエントリに追加する必要があります。

私がラムダにJSONデータを取得したとき、唯一有益なのは新しいトークンのエンドポイントARNです。ユーザーデータは送信されません。そのために私はbotoを使ってそれを見ることができる必要がありますが、私はこれを行う方法を見つけることができませんでした。エンドポイントARNのユーザーデータをどのように検索するのですか?ラムダfuncitonに与えられた

JSONデータ:GetEndpointAttributes

{ 
 
    "Type" : "Notification", 
 
    "MessageId" : "afb28e95-f8cb-5622-a6ad-dccb37f6b07a", 
 
    "TopicArn" : "<Censored>", 
 
    "Subject" : "EndpointCreated event message", 
 
    "Message" : "{\"EndpointArn\":\"<Censored>\",\"EventType\":\"EndpointCreated\",\"Resource\":\<Censored>\",\"Service\":\"SNS\",\"Time\":\"2017-10-16T15:15:09.097Z\",\"Type\":\"EndpointCreated\"}", 
 
    "Timestamp" : "2017-10-16T15:15:09.181Z", 
 
    "SignatureVersion" : "1", 
 
    "Signature" : "<Censored>", 
 
    "SigningCertURL" : "<Censored>", 
 
    "UnsubscribeURL" : "https://sns.us-east-1.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=<Censored>", 
 
    "Attributes" : { 
 
    "EndpointArn" : "<Censored>", 
 
    "EventType" : "EndpointCreated", 
 
    "Resource" : "<Censored>", 
 
    "Service" : "SNS", 
 
    "Time" : "2017-10-16T15:15:09.097Z", 
 
    "Type" : "EndpointCreated" 
 
    }, 
 
    "MessageAttributes" : { 
 
    "AWS.SNS.OldAttributeTransport" : {"Type":"String","Value":"{\"EndpointArn\":\"<Censored>\",\"EventType\":\"EndpointCreated\",\"Resource\":\"<Censored>\",\"Service\":\"SNS\",\"Time\":\"2017-10-16T15:15:09.097Z\",\"Type\":\"EndpointCreated\"}"} 
 
    } 
 
}

enter image description here

答えて

1

Boto3は、あなたが探しているもののように聞こえるSNSの方法があります。

import boto3 
client = boto3.client('sns') 
response = client.get_endpoint_attributes(EndpointArn="INSERT-ARN") 
print(response["Attributes"]["CustomUserData"]) 

HTH

ドキュメントhereを見つけました。

+0

私はそれを見落としたと思います。私は昨日何時間もそのページを見つめてみました。ありがとうございました! – Reid

関連する問題