PrivateサブネットにLambdaをデプロイしようとしたときのエラー
こんにちはししぃです。
まる 1 日激しくぶつかったエラーがありました 😅
解決策が分かったのでのせておきます!
状況
やりたかったことは次の通りです。
Private サブネットに Lambda を Chalice 経由でデプロイします。
しかし EC2 の権限周りらしいというエラーメッセージをだしてデプロイ失敗、、、そんな状態です。
始めは Chalice 特有のエラーを疑いましたが最終的にはLambda のエラーでした!
エラーメッセージ
こやつ
An error occurred (InvalidParameterValueException) when calling the CreateFunction operation: The provided execution role does not have permissions to call CreateNetworkInterface on EC2
実行したコマンドはこちら
$ chalice deploy
解決策
公式の解説はこちら
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/configuration-vpc.html
解決策は公式解説どおりですが、
Lambda の実行ロールに管理ポリシーである AWSLambdaVPCAccessExecutionRole これを付与することです。
GUI でいうと、こいつに権限をあげれば OK です!
以上です。ありがとうございました!😊
追記 2021/09/25
その後、自分で全く同じエラーを踏んでこのブログに辿り着き、内容がわかりにくかったので
Lambdaのコンソールを使った手順を下記に追加しました!
PrivateサブネットにLambdaをデプロイしようとしたときのエラー(具体的な作業)
余談発生する手順
今回の私が待ったケースとは異なりますが、こんなことしたら再現します。という手順を載せておきます。
① VPC で適当な Private サブネットを作成する
② 適当な Lambda を作成する(すべて default 設定)
③ Lambdaのコンソールから作成した Private サブネットを設定する
- 下記の「編集」をクリックし
- Private サブネットを設定して「保存」をクリック
- このとき、上記スクショの赤枠のエラーが発生します