2019-01-01から1年間の記事一覧
概要 先日、次のバスの出発時刻を聞ける Alexa スキルを作りました。 その際、バスの時刻表を csv にして、プログラムから使ったのですが、 今だったら Cloud Vision API でバス時刻表の画像から時刻を読み取れるのでは、と思ったので試してみました。(Alex…
概要 タイトルの通り、赤ちゃんのうんち、おしっこ、ミルクの時間を Google Spreadseet に記録する Alexa カスタムスキルを作ったという話です。 ほぼほぼこちらをマネさせていただきました。mm miyataro.hatenablog.com こちらも参考にさせていただきました…
概要 近々、Professional Cloud Architectの試験を受ける。 試験前に勉強したことについて要点をまとめておく。 落ちた場合も、受かった場合も(有効期限あるので)役に立つはず。 ※2019/08時点のこと。内容が変わっている可能性は大いにあり。 やったこと(…
概要 昨年に続き、今年も参加できたので、レポートです。 Google Cloud Nextとは、 Next は Google Cloud に関する技術や事例などを共有するためのイベントです。 kawabatas.hatenablog.com 受講セッション セッション動画は youtube に徐々に上げられていま…
概要 コンテナをサーバレス like に使える Cloud Run。 今までのサーバレスの課題(制約) 言語、ライブラリに制約 特定のベンダーロックイン GPU/TPU 特定のハードウェアへアクセスできない → Cloud Run on GKE なら GPU など使える を解決できる。 ポケモ…
概要 負荷検証中に deadlock のログを見つけて、その対処をしたのでメモです。 クエリ特定 SHOW ENGINE INNODB STATUS; コマンドを実行すると、 LATEST DETECTED DEADLOCK でどのクエリで deadlock が発生したのかわかります。 今回は INSERT INTO tokens (i…
概要 アプリ内課金の実装に関わったので、メモ。 ※アプリ内課金はプラットフォーム側の影響を受ける。記載内容が古くなっている可能性があるので注意。 テーブル設計 products テーブル App Store, Google Play に登録するアプリ内課金アイテムの情報。produ…
概要 PR をマージしたときに、 Github Actions で Firebase ファンクションをデプロイするようにしたとき、 Github Actions が2回走り、その内1回のデプロイでエラーになりました。 それを解決した時のメモです。 エラー ログの一部抜粋です。 ※Firebase フ…
概要 Dockerコマンド、毎回ググってる気がするので、自分用のメモ。 コマンド ビルド docker build -t [イメージ名] . ARG を使う場合、DockerfileにARGを定義して docker build --build-arg TOKEN=$TOKEN -t [イメージ名] . タグ docker tag [イメージID] […
概要 kawabatas.hatenablog.com こちらに加え、go get でプライベートリポジトリのライブラリを使いたくなった。 手順 Github の Personal access token を作成する。こちら Github Actions のリポジトリに Secretsを追加する。こちら 下記のコードで実行す…
SOCKS プロキシサーバーの DeleGate をコンテナで立てたかったのだが、 docker hub で上位にあったイメージがエラーで使えなかった。 hub.docker.com $ docker-compose up Creating delegated_delegated_1 ... done Attaching to delegated_delegated_1 dele…
概要 AWSのコンテナ関連サービスを調べた。 AWSのコンテナ関連サービス AWSのコンテナ関連サービスの選定例の紹介 ECS/EKS/Fargate/EC2 コントロールプレーン コンテナの管理:クラスターで Docker コンテナを簡単に実行、停止、管理できる ECS Cluster > Se…
概要 Elastic Beanstalk Multi-container Docker を試してみた。 VPC、Subnet、ECRリポジトリは事前に作成済みとする。 ネットワークロードバランサーで、1080番ポートを使う。 Elastic Beanstalk Multi-container Docker 複数コンテナの Docker 環境 Elasti…
概要 ECRにコンテナイメージをアップロードする手順メモ。 ECRドキュメント 手順 ローカルでビルドしておく docker build -t kawabatas/delegated . 認証 aws ecr get-login --region <リージョン> --no-include-email 出力された docker login コマンドを実…
概要 ECS Fargate + NLB を CloudFormation でテンプレート化した。 VPC、Subnet、ECRリポジトリは事前に作成済みとし、 ECSクラスター/サービス/タスク定義、NLB、ターゲットグループ、セキュリティグループを CloudFormation で作成する。 参考 AWS CloudF…
概要 ECS の機能の確認中に、ECS service discovery によって Route53 hosted zone が作られた。これを削除するメモ。 問題 Route53 の zone を AWS マネジメントコンソールから削除しようとすると、 The resource hostedzone/<ホストゾーンID> can only be …
概要 Kubernetes のローカル環境が欲しくなった。 そういえば Docker for mac から使えるようになったという記事を見た記憶が... 使えるようにしたのでメモ。 バージョン stable版でも Kubernetes を使えるようになっていた。 手順 Preference を開いて Kube…
Lambda でシェルスクリプトを実行するまでの動画を作ってみました。 公式ドキュメント www.youtube.com
Lambda Go を動かすまでをやってみた動画を作ってみました。 AWS公式ドキュメント www.youtube.com
概要 Go で REST API 用のモックサーバーを作りました。 kawabatas/gomock バイナリの実行で、モックサーバーが起動する handler をパッケージにすることで、テストでも使える ということを意識しました。 gostub/gostub(紹介記事)を参考にさせていただき、r…
概要 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 up -d $ docker-compose ps Name Command State Ports ---------------------------------------------------…
概要 Golang Lambda で DynamoDB のトレース、外部HTTPリクエストのトレースをした際のメモです。 Lambda のトレースの有効化 Lambda での AWS X-Ray のセットアップにあるように、 「アクティブトレースを有効にします」にチェックを入れれば、Lambda の起…
概要 セキュリティグループのインバウンドルールで TCP を許可している EC2 に対して、 VPC 内にアクセス可能にした Lambda、そうでない Lambda からの疎通確認をしてみました。 Lambda のランタイムは Go です。 Lambda のコード package main import ( "lo…
概要 GitHub Actions で Go の超シンプルなテストを実行してみたのでメモ。 GitHub Actions 現在 limited public beta で、使いたい人はこちらからエントリーが必要。 コード サンプルリポジトリはこちら。 .github/main.workflow を作成しただけ。 $ tree -…
概要 HTTP モックサーバがほしいなら、標準の httptest パッケージを使えばよいとわかったのでメモ。 コード GET リクエストを投げる ping 関数 func ping(url string) int { client := &http.Client{ Timeout: 5 * time.Second, } res, err := client.Get(u…
概要 外部 API や DB が関わるコードのテストでモックを使いたい場面は多々あると思う。 interface を使って、テストでモックに切り替えることができるのでメモ。 インターフェイスを定義 type DB interface { Add(name string) error Delete(name string) e…
概要 go を触り始めたばかりで、go のテストのことが少しわかったので、メモ。 書き方 テストのファイルは *_test.go main.go だったら main_test.go testing ライブラリを import して、func TestXXX(t *testing.T) という関数を作成する package main func…
go fmt をサブディレクトリ配下のすべてのファイルにまとめて行える $ go fmt ./...
概要 go の開発環境を設定し、go のプロジェクト作成までやったのでメモ。 goenv のインストール goenv は、go 言語のバージョンを管理するもの。 go 言語版の rbenv や nodebrew のようなもの。 リポジトリはこちら $ brew install goenv $ echo 'export GO…