SAMについては以下のドキュメント等読んでください
AWS サーバーレスアプリケーションモデル - アマゾン ウェブ サービス
インストール
$ brew tap aws/tap
$ brew install aws-sam-cli
なお、すでに環境ができているものとします。
parcelを使ったTypeScript+AWS Lambdaについては以下の記事を見てください。
parcel v2を使ってTypeScriptで書いたAWS Lambdaをビルドする - Qiita
SAMのtemplateを用意します。
基本的には、AWS CloudFormation
構文なので詰まったらこのキーワードで調べるといいでしょう。
template.yml
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: Run AWS Lambda
Resources:
Main:
Type: AWS::Serverless::Function
Properties:
Handler: dest/bundle.handler
Runtime: nodejs12.x
Environment:
Variables:
GITHUB_TOKEN:
Type: String
環境変数は、template.ymlに直接書かずに別に定義するといいでしょう。その場合も、テンプレートにどのキーを使うかについては記述が必要になります。
env.json
{
"Main": {
"GITHUB_TOKEN": "1234567890...."
}
}
イベントをjsonで用意します。
events.json
{
"body": "hello"
}
-n
で環境変数、-e
でイベントを与えてやればローカル環境でLambda関数がテストできます。
sam local invoke Main -n env.json -e events.json