2016-11-20 4 views
0

ラムダ関数の名前がステージ変数として使用されているときに、AWS API GatewayをプロキシLambdaで使用しています。私は展開された段階に従って適切なラムダに接続する単一のAPIインテグレーションを持っています。 ここで一般的なアイデアを参照してください: enter image description hereAWS API Gatewat with Lambda:Lambda関数の無効なアクセス

私は私のステージの一つ(と呼ばれる:「ステージング」)をテストする場合、すべてが正常に動作しますが、他の段階(「生産」)をテストする場合、私はエラーを取得する「実行が失敗したため構成エラー:ラムダ関数の無効なパーミッション "になります。

私が既にテストして確認した事柄:
1.ラムダダッシュボードからテストしたとき、APIによって呼び出されるべきラムダは正常に動作します。
2.ラムダ機能を呼び出すためにAPIゲートウェイに許可した(つまり、「aws lambda add-permission ...」を実行した)ことを確認しました。その後、何度もポリシーを検証しました(つまり、「aws lambda get-policy ...」を実行しました)。

他に何が確認できますか?私はここで何を忘れていたでしょうか?おかげさまで ラムダ関数は、ステージ変数に指定された場合

enter image description here

答えて

-1

Couldn」理由を見つけましたが、問題を解決する回避策が見つかりました。 ラムダ関数名として$ stageVariablesを使用する代わりに、私が明示的に使用するラムダ関数の名前を書きました。このようにして、AWSはラムダ関数に自動的にアクセス権を与えます(それぞれ明示的に書き込みます)。その後、ステージ変数を使用して統合を編集することができます。

enter image description here

1

権限が自動的に作成されていないラムダ関数を呼び出します。あなたはこれを手動で実行する必要があります。

aws lambda add-permission --function-name arn:aws:lambda:eu-west-1:111111111111:function:some-function:default --source-arn arn:aws:execute-api:eu-west-1:111111111111:xxxxxxxxxx/* --principal apigateway.amazonaws.com --statement-id 88b42004-f504-44d5-9adf-d027ee65a890 --action lambda:InvokeFunction 

(あなたはこの声明の中で地域、あなたのラムダ関数名と口座番号だけでなく、APIゲートウェイARNを交換する必要があります。)

+0

返信Digitalkapitaenのおかげで、私は私の元の質問で述べたように - 「私はすなわち、実行(私は私のラムダ関数を呼び出すためにAPIゲートウェイへのアクセス許可を与えてくれたこと(何度も)必ず作りました"aws lambda add-permission ...") "。 – Shaish

+0

私はあなたがこれを大切にしていると確信しています。しかし、あなた自身の質問に対する答えは明らかに、パーミッションが正しく設定されていないことを示しています。私はあなたの質問に記載された問題の解決策は、正しいアクセス許可を設定するので、この答えを有用でないと判断するのは問題があると思います。 – Digitalkapitaen

+0

もちろん、問題は関連する権限の問題でした(これは質問自体から明らかです - "...無効な権限...")が、この特定の答えは残念ながら役に立たないです。このコマンドで手動で権限を設定するだけでは機能しません。私は私のオリジナルの質問( "aws lambda add-permission")でこのコマンドを使用したと具体的に述べたので、答えは役に立たないと信じていたので、基本的に答えはちょうど質問の一部を繰り返す。 それはおそらく私はあまりにも急いで、おそらく答えは、別のシナリオでは他の誰かに役立つかもしれないと言った。 – Shaish

関連する問題