Tag: Golang

Go 製の API サーバーで Fargate Spot を使う

AWS Fargate で Go 製の API サーバーを動かしており、費用節約のために Fargate Spot を使おうと思った。そのために行った内容について。

CDK で AWS Parameters and Secrets Lambda Extension を使ってみる

CDK で AWS Parameters and Secrets Lambda Extension を使ってパラメータを取得する Lambda を作成する。

環境変数 GOOGLE_APPLICATION_CREDENTIALS に設定する JSON ファイルをアプリケーション実行時に動的生成する

Firebase Authentication のサーバーサイドでサービスアカウントキーが含まれる JSON ファイルのパスを環境変数 GOOGLE_APPLICATION_CREDENTIALS に設定しなければならないが、そもそも JSON ファイル自体の置き場に困ったので JSON ファイルの中身を環境変数で渡して JSON ファイルを動的生成する。

Lambda (Go) + EventBridge (Cron) + Systems Manager Parameter Store + CDK

Go で作った Lambda 関数(パラメータストアから値を読む)を EventBridge を使って Cron 実行する環境を CDK で書く。

rubenv/sql-migrate でマイグレーションツールを実装

rubenv/sql-migrate でマイグレーションツールを実装する。

Go で JWT を発行して検証する

Redis を使ってセッション管理していた部分を JWT 形式のアクセストークン認証に置き換えるための実装をした。

gomock を使ってテストを書く

gomock を使ってモックを生成してテストを書く。

【Go】gqlgen directive で複合バリデーション

gqlgen の directive で複合バリデーションする。

【Go】GraphQL で directive を使ったバリデーション

GraphQL で directive を使った入力値バリデーションを実装する。

【Go】GraphQL でページングする

GraphQL で cursor-based pagination を実装する。