Skip to content

shimabox/example-s3-to-lambda-go

Repository files navigation

example-s3-to-lambda-go

ユースケース

挨拶されたら挨拶された内容を保存する。

技術的ユースケース

挨拶(S3へjsonファイルをPut)されたら挨拶された内容(jsonファイルの中身)を保存(標準出力してCloudWatchへ保存)する。

  • 挨拶
    • S3へjsonファイルをPut
  • 挨拶された内容
    • jsonファイルの中身
  • 保存
    • 標準出力してCloudWatchに残す

リソース

※ 名前などは環境変数(.env)で定義

LocalStack

Lambda

  • 関数
    • example-s3-to-lambda-go

S3

  • Lambda関数配置バケット
    • local-lambda-storage-bucket
  • Putイベント監視バケット
    • local-input-bucket

CloudWatch

  • LogGroup
    • /aws/lambda/example-s3-to-lambda-go

Usage

clone

git clone https://github.com/shimabox/example-s3-to-lambda-go.git
cd example-s3-to-lambda-go
cp .env.example .env

build

make build
make cl # create lambda.

test

# all test
make alltest

# feature test
make featuretest

# unit test
docker compose exec go make gotest
// or locally.
make gotest

lint

docker compose exec go make lint
// or locally.
make lint

lambda build

docker compose exec go make gobuild
// or locally.
make gobuild
  • Output to dist/greeting.zip

Command

  • Container up
    • make up
  • Container down
    • make down
  • Container restart
    • make restart
  • Update lambda.
    • make ul # update lambda
  • Check lambda operation.
    • docker compose exec localstack bash scripts/operation_check.sh

Todo

  • とりあえず動くように
  • xxxアーキテクチャでテストを書きやすくする
    • オレオレアーキテクチャ
  • localstackでの動作確認
  • SAMでデプロイ
  • GitHub Actions
    • CI追加
    • デプロイ
  • テスト補完
    • infra、gateway