Docker-Lambdaの利用
Lambda関数の開発時に、都度Cloudにプッシュしてテストするのは非効率です。
ローカルにLambda関数を動かすDockerを構築してくれるコンテナをOSSとして提供してくださっているのでこちらを利用しています。
テストプロセス
最終的に以下のような構成にしてテストを進めました。
- jestを用いて単体テスト
- lambda-dokerでLambdaハンドラをテスト
- Lambda関数をデプロイし、マネジメントコンソールからテスト
- APIGatewayをデプロイし、マネジメントコンソールから結合テスト
jestでテストする際に環境変数を利用したいと思ったのですがそれについては別の記事で記載しましたのでご参照ください。
フロントエンド開発
パソコン上に環境を構築して開発を進めていたのですが、過去にパソコンが故障して困ったことがあったので、開発環境は徐々にCloud9に移行を進めているところです。
そのため、Cloud9上にnodejs、typescript、Amplify、Nuxtjsなどをインストールして開発をする形にしています。
注意点としてCloud9上でAmplifyを動かし、がんがんnodejsを使おうと思うとEBSは32GBくらいは必要です。
AWS Amplifyの利用
Amplifyを利用することで以下の作業が楽になります。
- フロントエンドファイルのS3へのアップロード
- CloudFrontの設置(カスタムドメインの設定は別途必要)
- RESTAPIのデプロイ(APIGateway、Lambda)
- 認証認可にAmazonCognitoを利用する
まとめ
以上の構成で今のところ落ち着いています。
CI/CD環境も少しづつ改善しながら効率化していきたいと思います👍