2017-06-27 14 views
1

AWS Camelを使用してAWS SNSトピックにメッセージを送信しようとしています。 次のように私はSNSクライアントを定義しました:Camel AWS SNS - 無効なパラメータ:TopicArn

<bean name="snsClient" class="com.amazonaws.services.sns.AmazonSNSClient"> 
    <constructor-arg> 
     <bean class="com.amazonaws.auth.BasicAWSCredentials"> 
      <constructor-arg value="${access.key}"/> 
      <constructor-arg value="${secret.key}"/> 
     </bean> 
    </constructor-arg> 
</bean> 

そして、次のキャメルルート:

<route id="content.publication.receipting.CPS"> 
... 
    <to id="DeliverBundleToPIPS" uri="aws-sns://arn:aws:sns:<MyRegion>:<MyAccount>:<MySNSTopicArn>?amazonSNSClient=#snsClient"></to> 
</route> 

それは、次のメッセージで失敗します。

WARN Exchange failed, so rolling back message status: Exchange[ID-U6023035-TPL-A-64492-1498559205318-0-2] 
com.amazonaws.services.sns.model.InvalidParameterException: Invalid parameter: TopicArn (Service: AmazonSNS; Status Code: 400; Error Code: InvalidParameter; Request ID: 7a352f55-22f0-59c4-9c68-7e9917bdec0f) 

し、正しい値であり、 。

答えて

0

は、いくつかの研究とテストの後、私はそれが明示的にamazonSNSEndpointを指定することで動作しました:

<route id="content.publication.receipting.CPS"> 
... 
    <to id="DeliverBundleToPIPS" uri="aws-sns://arn:aws:sns:<MyRegion>:<MyAccount>:<MySNSTopicArn>?amazonSNSClient=#snsClient&amp;amazonSNSEndpoint=sns.us-west-2.amazonaws.com"></to> 
</route> 

デフォルト領域選択機構は、この場合には正常に動作しないように見えます。

関連する問題