kawabatas技術ブログ

試してみたことを書いていきます

2019-02-01から1ヶ月間の記事一覧

Docker for mac で Kubernetes 環境構築

概要 Kubernetes のローカル環境が欲しくなった。 そういえば Docker for mac から使えるようになったという記事を見た記憶が... 使えるようにしたのでメモ。 バージョン stable版でも Kubernetes を使えるようになっていた。 手順 Preference を開いて Kube…

Lambda でシェルスクリプトを実行してみた

aws

Lambda でシェルスクリプトを実行するまでの動画を作ってみました。 公式ドキュメント www.youtube.com

Lambda Go のチュートリアルをやってみた

Lambda Go を動かすまでをやってみた動画を作ってみました。 AWS公式ドキュメント www.youtube.com

Golang でモックサーバーを作った

go

概要 Go で REST API 用のモックサーバーを作りました。 kawabatas/gomock バイナリの実行で、モックサーバーが起動する handler をパッケージにすることで、テストでも使える ということを意識しました。 gostub/gostub(紹介記事)を参考にさせていただき、r…

Golang+EchoのAPIにIPアドレスによるアクセス制限を設ける

go

概要 Golang + Echo の API に IPアドレスによるアクセス制限を設けたのでメモ。 実装 ほぼほぼこちらを参考にさせていただいた。 package main import ( "net" "os" "strings" "github.com/labstack/echo" ) // InternalIpFilter returns an middleware whi…

docker-compose で postgres -> mysql に変えたら起動できなくなった

概要 docker-compose で postgres -> mysql に変えたら起動できなくなりました。 無事解決できたのでメモです。 起動時のエラー $ docker-compose up -d $ docker-compose ps Name Command State Ports ---------------------------------------------------…

Golang Lambda を AWS X-Ray で表示する

概要 Golang Lambda で DynamoDB のトレース、外部HTTPリクエストのトレースをした際のメモです。 Lambda のトレースの有効化 Lambda での AWS X-Ray のセットアップにあるように、 「アクティブトレースを有効にします」にチェックを入れれば、Lambda の起…

Lambda から EC2 へ TCP 疎通を確認する

概要 セキュリティグループのインバウンドルールで TCP を許可している EC2 に対して、 VPC 内にアクセス可能にした Lambda、そうでない Lambda からの疎通確認をしてみました。 Lambda のランタイムは Go です。 Lambda のコード package main import ( "lo…

GitHub Actions で Go のテストを実行する

go

概要 GitHub Actions で Go の超シンプルなテストを実行してみたのでメモ。 GitHub Actions 現在 limited public beta で、使いたい人はこちらからエントリーが必要。 コード サンプルリポジトリはこちら。 .github/main.workflow を作成しただけ。 $ tree -…

【Go言語のtest】HTTPリクエストのテスト

go

概要 HTTP モックサーバがほしいなら、標準の httptest パッケージを使えばよいとわかったのでメモ。 コード GET リクエストを投げる ping 関数 func ping(url string) int { client := &http.Client{ Timeout: 5 * time.Second, } res, err := client.Get(u…

【Go言語のtest】interface を利用して mock を使う

go

概要 外部 API や DB が関わるコードのテストでモックを使いたい場面は多々あると思う。 interface を使って、テストでモックに切り替えることができるのでメモ。 インターフェイスを定義 type DB interface { Add(name string) error Delete(name string) e…

はじめての Go のテスト

go

概要 go を触り始めたばかりで、go のテストのことが少しわかったので、メモ。 書き方 テストのファイルは *_test.go main.go だったら main_test.go testing ライブラリを import して、func TestXXX(t *testing.T) という関数を作成する package main func…

go fmt をディレクトリ階層まとめて行う

go

go fmt をサブディレクトリ配下のすべてのファイルにまとめて行える $ go fmt ./...

Mac で Go の環境構築

go

概要 go の開発環境を設定し、go のプロジェクト作成までやったのでメモ。 goenv のインストール goenv は、go 言語のバージョンを管理するもの。 go 言語版の rbenv や nodebrew のようなもの。 リポジトリはこちら $ brew install goenv $ echo 'export GO…

【環境変数の管理に便利!】direnv を Mac に設定

env

概要 ステージング、本番など環境ごとに環境変数を用意すると思いますが、 ローカルの環境変数の管理には direnv が便利なので、その設定方法をメモです。 リポジトリはこちら direnv をインストール $ brew install direnv $ echo 'eval "$(direnv hook bas…