LoginSignup
0
0

CloudformationのカスタムリソースでVPCLambdaを呼び出したときのエラーと対処法

Posted at

はじめに

Cloudformationでカスタムリソースを使用していた時に、エラーが発生しました。
調査をしていると、LambdaをVPCLambdaに変更したことが影響しているとわかり、
AWS公式ドキュメント等を見ながら対処しました。
その時のエラーや対処法を残します。

発生したエラー

カスタムリソースから呼び出したLambdaでは、
応答を返却する為のcfn-responseモジュールから403エラーが返却。

また、Cloudformationの画面では、
CloudformationスタックのステータスがUPDATE_IN_PROGRESSのまま一時間スタック。
これは、CloudformationがLambdaからの応答をタイムアウトまで待機しつづける為に起こります。
image.png

一時間経過すると、ステータスがUPDATE_ROLLBACK_FAILLEDとなります。
image.png

原因

VPCLambdaからS3へアクセスする道が無かった為。

Cloudformationのカスタムリソースでは、応答をモニタリングするために
S3バケットが各リージョンに用意されており、S3バケットを介してやり取りしています。
その為、VPCLambdaがCloudformationにレスポンスを返却する際にS3を介するわけなのですが、
VPCからS3への道が無かった為に応答が届きませんでした。

対処法

S3用VPCエンドポイントのポリシーに、カスタムリソース用のS3バケットを追加し許可する。

"arn:aws:s3:::cloudformation-custom-resource-response-region"

regionは使用しているリージョンに変更します。

補足

Lambdaの変数eventの内容を確認すると、
Cloudformationから渡されたパラメータが格納されています。
この中には、ResponseURLというパラメータが含まれておりここにS3の情報が入っています。

おわりに

エラーが出て初めて、カスタムリソースがS3を使用していることを認識。
カスタムリソースの何とかして動かしてます感すごい。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0