2017-10-16 7 views
0

아마존 SNS 응용 프로그램 (GCM)이 있습니다. 새로운 플랫폼 엔드 포인트가 생성 될 때 실행되도록 람다 함수를 트리거하도록 구성했습니다. 내 사용자 데이터베이스에 플랫폼 끝점을 추가해야합니다. 엔드 포인트와 연관된 사용자 이름은 "사용자 데이터"로 보내집니다.SNS 응용 프로그램 이벤트 엔드 포인트에서 사용자 데이터를 가져옵니다.

람다 함수를 사용하여 사용자 DB 엔트리에 엔드 포인트 arn을 추가하려고합니다.

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

관련 문제