上京エンジニアの葛藤

都会に染まる日々

Go

ALB のアクセスログを JSON に変換するコマンドラインツールを作ったので紹介する

Go

概要 使い方 補足 感想 概要 albconv という ALB のアクセスログを JSON に変換するコマンドラインツールを作ったので、紹介です。 github.com demo albconv きっかけは ALB のアクセスログを少し解析する必要があり、量も少ないので手元で確認しようとした…

Go で Graceful Shutdown な Web サーバーを書く

Go

概要 Go で Graceful Shutdown な Web サーバーを書きたかったのでその備忘録です。 結論 net/http パッケージの Server.Shutdown() を使え http package - net/http - Go Packages それだけなんですが、動作確認しながら挙動を追いたいので Web サーバーを…

初めての Go 言語でテストについて学んだ

Go

概要 初めての Go 言語の テスト の章が勉強になったのでそのまとめです。 まとめ テストは製品版と同じディレクトリ、パッケージに置く エクスポートされていない関数や変数にもアクセスしてテストが可能 ファイル名は xxx_test.go とする テスト関数は Tes…

connect-go の interceptor に外部から context を渡す

Go

概要 connect-go の interceptor に外部から context を渡す方法についてです。 あまりすることは無さそうですが、context に値をセットするような interceptor を書いていて、単体テストを書く際に今回のような方法が有用だったので紹介します。 intercepto…

golang-jwt/jwt で JWT の発行、検証を行う

Go

golang-jwt/jwt を使って JWT の発行、検証を試したので残しておきます。 github.com サンプルコードはこちら。 github.com JWT の発行 func generate() (string, error) { token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.RegisteredClaims{ Issue…

go install で落とした binary に PATH を通す

Go

asdf でバージョン管理をしているため GOPATH が動的に変わるので以下のように PATH を通した。 export PATH="$(go env GOPATH)/bin:$PATH" .zprofile だと上手く読み込めなかったので .zlogin に記述した。