2017-06-27 37 views
1

我試圖使用AWS Camel將消息發送到AWS SNS主題。 我已經定義了SNS客戶端,如下所示:駱駝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> 

它看起來像默認的區域選擇機制在這種情況下不正常工作。