サーバレス(主に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以外で実行する可能性があるときは、こちらを使うのがベストかもしれない