時々ちょっとしたツールを書いていてマイクロサービスってどうなんだろと気になりました。最近ハマっているGOで試してみたい。
go-kitはGOでマイクロサービスを書くためのツールキットでIstioを除くと他パッケージの倍ほどのstarがついてます。
インストールでいきなり詰まったので今回はそこまでのメモ。
インストール
いつも通りgo get
でインストール。
1 2 |
>go get github.com/go-kit/kit can't load package: package github.com/go-kit/kit: no Go files in C:\Users\xxx\go\src\github.com\go-kit\kit |
インストールできてない?
%GOPATH%/src/github.com/go-kit/kit
を見てみるとダウンロードはできてるので、github.com/go-kit/kit/endpoint
をインポートしてテスト実行してみると、
1 |
..\..\..\go\src\github.com\go-kit\kit\log\logfmt_logger.go:8:2: cannot find package "github.com/go-logfmt/logfmt" in any of: |
パッケージ内の依存性が解決していない。
go-kitについて色々調べてみるとstar数(現在13,204)にかかわらず記事が全然ない。
他のパッケージを色々見てるとgo get
で...
をつける書き方を見つけた。
ワイルドカードの役割らしく、これで再起的にインストールしてくれそう。
1 2 3 4 |
>go get github.com/go-kit/kit/... go\src\github.com\go-kit\kit\metrics\cloudwatch2\cloudwatch2.go:169:22: not enough arguments in call to req.Send have () want (context.Context) |
またエラーが出てる。
少し調べてみるとcloudwatchifaceが5日前に変更されたのが原因のようです。
そのうち修正されるだろうから今は気にしないで記憶にとどめておきます。
パッケージが割と複雑になるかもしれないので、そろそろパッケージマネージャの導入も考えた方がいいかもしれない。