2014-03-02 2 views
3

C#에서 AWSSDK 버전 2.0.8.2를 사용하여 65536 바이트보다 큰 메시지를 게시하려고하면.AWS SNS C# 65kb보다 큰 메시지를 게시 할 수 없습니다.

나는 다음과 같은 예외를 얻을 :

'Amazon.SimpleNotificationService.Model.InvalidParameterException' 이 AWSSDK.dll에서 발생했지만 사용자 코드에서 처리되지 않은 유형의 예외

추가 정보 : 잘못된 매개 변수 : 메시지가 너무 길어서 서명 버전 4의 요청 만 65536 바이트보다 큰 메시지를 게시 할 수 있습니다.

AWS 문서를 비롯한 모든 곳에서 보았지만 SNS 푸시에 시그니처 4를 사용하는 방법을 찾을 수 없습니다. 아는 사람 있나요?

나는 2.0.10.0으로 업데이트 시도했다하지만 여전히 운, 여기에 내가 사용하고 코드입니다

RegionEndpoint regionEndPoint = RegionEndpoint.USWest2; 

IAmazonSimpleNotificationService snsClient = AWSClientFactory.CreateAmazonSimpleNotificationServiceClient(awsAccessKeyId, awsSecretAccessKey, regionEndPoint); 

PublishRequest publishRequest = new PublishRequest() 
      { 
       Subject = subject, 
       Message = jsonBody, 
       TopicArn = testTopicArn 
      }; 

      snsClient.Publish(publishRequest); 
+0

이 코드가있는 프로젝트의 csproj를 다시 확인하고 AWSSDK에 대한 유일한 참조가 버전 2.0.8.2 또는 2.0.10.0인지 확인할 수 있습니까? –

답변

4

AWS는는 6 월 (18) 2013 SQS 및 SNS의 2백56킬로바이트 페이로드에 대한 지원 이 AWS: "What's new?" 게시물에 발표되었습니다. 게시물에서 :

256KB 페이로드 (SQS 및 SNS)를 사용하면 개발자는 각 API 호출을 통해 개의 데이터를 보내고받을 수 있습니다. 이전에는 탑재량이 64KB로 제한되었습니다. 이제 큰 페이로드는 페이로드의 012KB인 64KB '청크'당 하나의 요청으로 청구됩니다. 예를 들어, 256KB 페이로드에 대한 단일 API 호출은 이며 4 개의 요청으로 청구됩니다. 우리 고객은 이전에 성취하기가 어려웠던 새로운 유스 케이스를 활성화하기 위해 더 큰 페이로드를 알려줍니다.

이러한 기능은 현재 모든 지역에서 사용할 수 있습니다. 이러한 기능을 사용하려면 AWS 서명 버전 4가 활성화 된 최신 SDK를 사용해야합니다.

64KB (65,536 바이트) 페이로드 만 지원하는 이전 버전의 SDK를 사용하고 있기 때문에 예외가 발생합니다. SDK의 2.0.8 버전에이 서명이 있어야하는 것처럼 보입니다. 아마도 관련 프로젝트에서 참조를 확인하십시오. 문제의 원인이 될 수있는 이전 버전에 대한 참조가있을 수 있습니다.

SNS에서 큰 페이로드에 대해 추가로 documentation이 있습니다.

관련 문제