2017-01-03 1 views
1

집중적으로 AWS SNS를 사용하는 서버가 있습니다. 물론 여러 환경 (dev, QA, 생산, 커스텀 등)을 가지고 있습니다.AWS SNS의 여러 환경을 어떻게 처리합니까?

SNS를 사용하면 토큰 당 하나의 엔드 포인트 만 등록 할 수 있습니다. 따라서 AFAIK는 동일한 토큰을 가진 두 개의 다른 엔드 포인트를 가질 수 없습니다 , 다른 PlatformApplication에서 생성 된 경우에도) 어떻게하면 다른 환경 사이의 분리를 관리 할 수 ​​있습니까?

편집 : 우리의 모든 환경은 동일한 AWS IAM 계정에 있습니다.

+0

환경이 다른 AWS 계정에 있습니까? –

+0

모든 환경에 대해 단 하나의 계정 만 있습니다. –

답변

1

SNS를 사용하면 여러 개의 HTTP/HTTPS 끝점을 단일 주제에 가입 할 수 있지만 dev 토픽이 dev HTTP 끝점으로 요청을 보내도록 환경마다 SNS 항목이 필요한 것 같습니다.

2017 년 여러 환경에 권장되는 AWS 전략은 환경별로 하나씩 여러 계정을 사용하는 것입니다. 모든 계정에 대해 통합 결제를 사용할 수 있습니다.

분리 한 경우 각 환경에 대한 SNS 주제를 작성하고 각각이 해당 환경의 해당 엔드 포인트에 요청을 게시합니다.

단일 계정 솔루션은 환경별로 하나의 주제를 만들고 응용 프로그램 구성 또는 환경 변수를 업데이트하여 환경에 적합한 ARN을 사용하는 것입니다.

+0

분명히 환경당 하나의 계정이 올바른 방법입니다. 감사합니다. 통합 결제에 대해 알지 못했습니다. –

0

platformApplication이 android 인 경우 동일한 GCM/FCM 서버 키를 사용하여 서로 다른 이름을 가진 platformApplicationARNs을 여러 개 만들 수 있습니다 (예상 한 env 당 하나). iOS 인 경우 하나의 응용 프로그램에 대해 dev 키와 prod 키가 있어야합니다. 다른 이름을 사용하여 동일한 키를 사용하여 여러 platformApplicationARN을 만들 수 있을지는 의문입니다. 당신이 설정되어 있다면 그것을 시도해보십시오!

다음으로 동일한 deviceToken을 각각 platformApplicationARNs과 함께 등록 할 수 있어야합니다. (이 방법을 시도해 보았습니다.) 이 동작은 알림을 위해 여러 응용 프로그램에 등록하는 모바일 장치와 유사합니다.

+0

PlatformApplication에는 문제가 없습니다. 문제는 PlatformEndpoint에 있습니다. 우리는 동일한 토큰 (적어도 IOS의 경우)으로 2 개의 다른 종점을 가질 수 없기 때문입니다. –

+0

platformEndpoint는 devicetoken과 platform 응용 프로그램을 사용하여 생성됩니까? 그래서 (환경별로) 다른 platformApplication을 가지고 있다면, 동일한 토큰을 사용하여 다른 endpoint를 생성하지 않을까요? –

+0

아니요. –

관련 문제