0

AWS API Gatewayを使用してGETメソッドを使用していたApexと関数を使用してラムダ関数をまとめてデプロイしました。Lambdaを使用するAmazon API GatewayはPOSTメソッドでパーミッションエラーを表示します

POSTを使用してラムダ関数を呼び出し、JSONオブジェクトを渡すAPIを作成する必要があります。 POSTの基本は作業を取得するために私はちょうど行い、簡単なラムダ関数を作成し、以下の

console.log("!!!!!!! Received request"); 
callback(null, {data: "Success"}); 
return; 

私はAPI GatewayからGETメソッドを使用して、このラムダ関数を呼び出すと、APIをテストするとき、それが正常に動作します - APIゲートウェイをテストメカニズムは、CloudWatchで成功した呼び出しに「Received Request」が記録されている間に「success」メッセージを出します。

私はAPIゲートウェイから同じラムダ関数を呼び出すためにPOSTリクエストを使用した場合しかし、私は、次の

「メッセージ」を取得:「内部サーバーエラー」を

そして私はまた、「実行がのために失敗した参照設定エラー:ラムダ関数の無効なパーミッション "

ラムダ関数が呼び出される役割に、その関数がPOSTメソッドを通じて呼び出されたときに追加の権限が必要かどうかという疑問があります。もしそうなら、私は使用されている役割に割り当てる必要があるその特権は何ですか?

ありがとう、 Sanjay。

答えて

0

APIゲートウェイレベルでPOSTメソッドを呼び出す場合は、そのポストメソッドをデプロイする必要があります。 AWS API Gatewayコンソールに移動します。あなたのPOST API名を選択し、グリッド(画面)の上部にActionsというドロップダウンがあります。そこにはdeployというオプションが1つあります。あなたが選択しなければならないのはPOST APIだけです。

+0

私がいることをやって、それを再度展開したが、同じエラーを取得していました。確かに、私は外部で(Postmanなどを使って)テストしていませんが、最初のステップとして、API Gateway API定義コンソールからテストしています。 –

0

APIゲートウェイには、ラムダ機能を呼び出すためのアクセス許可が必要です。 Webコンソール経由でAPIを設定した場合、許可を自動的に追加するように求められます。およびラムダ機能がステージ変数で指定されていません。

APIを作成または更新するためにCloudFormationやSwaggerなどのツールを使用している場合、またはLambda関数がステージ変数で指定されている場合は、手動でaws lambda add-permissionコマンドを発行して権限を設定する必要があります。

は、より多くの詳細については、これらの記事を参照してください。

Lambda function -> Api Gateway stage variable permission manually

AWS API Gatewat with proxy Lambda: Invalid permissions on Lambda function

関連する問題