2

現在、APIを使用してデータを取得するときは、2-3の異なる場所にデータを保存する必要があります(たとえば、いくつかのBIサービスに、時にはロギングDBに)。APIゲートウェイを使用してAPIゲートウェイを使用してSNSトピック/複数のラムダ機能を公開する

単一のリソースと単一のメソッドを複数のラムダ関数などにバインドすることが可能かどうかはわかりません。だから私の別のアプローチは、既にSNSトピックに登録して複数のラムダ関数をトリガーする方法を知っていたから、API Gatewayから何とかSNSトピックに公開できると思っていました。私の現在の考え方は以下のものです:

current implementation thinking

しかし、問題は、私はAPIゲートウェイからSNSのトピックに公開することはできませんよ、です。 TopicArn or TargetArn Reason: no value for required parameterのようなエラーが表示されます。

私のアプローチは、通常のSNSトピックを作成することです。すると、以下のような特別な役割ポリシーを作成します。

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "StmtXXXXXXXXXXX", 
      "Effect": "Allow", 
      "Action": [ 
       "sns:Publish", 
       "sns:Subscribe", 
       "sns:Unsubscribe" 
      ], 
      "Resource": [ 
       "SNS-TOPIC-ARN" 
      ] 
     } 
    ] 
} 

次にPOST/GETメソッドでAPIを作成する(私は両方試した)とAWSサービスプロキシと実行の役割としての役割として、SNSのトピックを追加しました。

+0

なぜ、単にSNSのトピックが関数をトリガーするのではなくラムダ関数を呼び出すAPIゲートウェイにヒットするようにしたのですか?不要なコストを追加するだけではないでしょうか? – arjabbar

+0

別のラムダ関数がSNSトピックより安くなると思いますか? –

+0

いいえ、私はあなたの質問に誤解しました。気にしないで。 – arjabbar

答えて

3

AWS API Gateway経由でTopicArnまたはTargetArnをSNSに渡す必要があります。さまざまな方法でアーカイブすることができます。

1. メソッド要求パラメータを作成してから、統合要求クエリ文字列パラメータを作成すると、TopicArn/TargetArnという名前が付けられ、メソッド要求パラメータがそのメソッドにマップされます。

2. インテグレーション要求クエリ文字列パラメータは、TopicArn/TargetArnという名前で作成し、Arnを静的な値として設定できます。

ここにはAWS API Gatewayが提供するstep by step instructionがあります。

+0

私は確信していませんが、私はすでにあなたの第2の提案を試みたが、うまくいかなかったと思う。私はそれを再度確認し、できるだけ早くあなたに連絡します。 –

+0

また、メソッド要求からのクエリ文字列も統合要求にマップする必要があります。 –

関連する問題