/ #Lambda #VPC 

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 サブネットを設定して「保存」をクリック
  • このとき、上記スクショの赤枠のエラーが発生します
Author

Sisii

インフラが好きなエンジニアぶってるなにか