Boilerplate/Starter Project for building Serverless Lambda functions with AWS SAM, Golang, Docker.
- AWS SAM
- Golang
- MySQL
- Docker
- Automated packaging and deploying with CircleCI
- Load environment variables from .env files
git clone https://github.com/okmttdhr/aws-sam-golang-docker.git
cd aws-sam-golang-docker
cp .env.sample .env
docker-compose build
docker-compose up
サーバーが立ち上がると、イベントに応じてLambda関数が実行される。 トリガーイベントはjsonを使用して発火することができるが、詳細は下記のリンクを参考にすること。
curlなどでAPIにアクセスする。
curl -H 'Content-Type:application/json' http://localhost:3000 -X POST -d "Paul"
# 全テストを実行
docker-compose run go go test
.envファイルに環境変数を追加することで、ローカル環境では環境変数が読み込まれる。
ただし、CloudFormationでのデプロイ時に環境変数を読み込むために、template.yml
を以下のように変更する必要がある。
Parameters
に値を追加Resources >> 該当のLambda関数 >> Environment
に!Ref 該当の環境変数名
を追加
各種ブランチへのプッシュを行うことで、CircleCIにより該当する環境へのビルド/デプロイが実施される。
- master / ステージング
- release / 本番