C++幼女先輩

プログラミング成分多め

サーバレス(主にAWS Lambda)の開発環境を調べる

昔から環境が変わったので調査中

まず今回調べるのは、サーバレス開発時の手法である

過去

わたしはLambdaが出始めた時には下記のような開発を行っていた

API Gatewayを設定する
nodeでコードを書く
トランスパイルを行う
Lambdaのエミュレートイメージ DockerLambdaを使いローカルデバッグ
Lambdaへのデプロイスクリプトを叩きデプロイ

しかし現在は色々と便利なものがある

AWS SAM

単純なFunctionであればこれがベストマッチ
APIGatewayの作成も行う事が出来る
また、AWSが公式のLambdaエミュレートDockerを出していて
ローカルテストまで出来る
主にAPIGatewayを使ったRestAPIの作成に向いている
非常に万能である

AWS Amplify

Lambdaだけでなく、Cognito、DB、S3、GraphQL等の実行環境をコンテナの中で開発するようなもの
SAMと比べて非常に色々な事が出来るので
フロントのHTMLやDBやらが必要なWebホスティングあるいはスマホでのサービス等
Lambdaだけじゃない大掛かりなシステムに向いている
主に画面をともなうGraphQLのソフトウェアに向いていると思われる

ServerlessFramework

AWS以外の、AzureやGCP、Ali Cloud、TencentCloud等にも対応している
Serverless-offlineプラグインを入れると、オフラインでも実行させることが出来る
AWS以外で実行する可能性があるときは、こちらを使うのがベストかもしれない