Open2
TerraformでAPI Gateway、Lambda、Cognitoリソースを管理してみる
HashiCorp社ブログ。こちらはとりあえずAPI Gateway、Lambaのみ。
Serverless Applications with AWS Lambda and API Gateway
TerraformだとやはりLambdaのソースコードの扱いに悩む。
ブログでは先にS3バケットを作成し、パッケージ(zip)済みのソースコードを配置した後に、aws_lambda_function
の s3_bucket
および s3_key
で配置済みパッケージを参照させている。
ソースコードに改修が入らない場合はこれで良いかもしれないが継続的に開発をしていきたい場合はやはりLambdaのソースコードは別リポジトリで管理をしたいとなると思う。
Terraformのリポジトリにパッケージ済みファイルを含めて aws_lambda_function
の filename
で参照させ、とりあえずLambdaのリソースを作成する。filename
は ignore_changes
に含めてソースコードの管理をTerraformの責務から外すことであとはいかようにでも出来る。
Cognitoによる認証も含めた例。
AWS Cognito + API Gateway + Terraform + React + Facebook
Amazon Cognito ユーザープールをオーソライザーとして使用 する方法ではなく、フェデレーテッドアイデンティティを用いたIAM認証を利用している。