概要 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…
概要 ステージング、本番など環境ごとに環境変数を用意すると思いますが、 ローカルの環境変数の管理には direnv が便利なので、その設定方法をメモです。 リポジトリはこちら direnv をインストール $ brew install direnv $ echo 'eval "$(direnv hook bas…
概要 sam で swagger.yaml を使う時にハマったのでメモ。 コード template.yaml AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: > sam-app Sample SAM Template for sam-app # More info about Globals: https…
概要 AWS SAMで、サーバレスアプリケーションを開発し始めた。 デプロイ時のエラーをAWSマネジメントコンソールから確認できることを知ったのでメモ。 デプロイ時のエラー $ make deploy aws cloudformation deploy --template-file output-template.yaml --…
概要 Amazon API Gateway でプライベート API を作成した際のメモ。 AWS ドキュメント VPC エンドポイントの作成 サービス -> VPC -> エンドポイントでエンドポイント作成。 サービスカテゴリ「AWS サービス」 サービス名「com.amazonaws.<リージョン名>.exe…
概要 Firebase Hosting で公開した一部のページに特定のIPからのみアクセス可能にしたいという要望を実現したときのメモ。 実装 IP制限をかけたいページへアクセスがあると、Cloud functions の関数を実行し、動的にhtmlを生成して返す。 ほぼほぼこちらの記…
概要 Google Container Registry の appengine の image を一気に削除するスクリプトを残しておく。 #!/bin/bash set -e # 例 us.gcr.io HOSTNAME= PROJECT_ID= image_lists=`gcloud container images list --repository=$HOSTNAME/$PROJECT_ID/appengine | …
概要 Google Cloud Tasks の ActiveJob 用のアダプタの GEM を作成した。 https://rubygems.org/gems/activejob-google_cloud_tasks 使い方と、初めての gem 公開にあたっての反省と、更新の手順をメモしておく。 使い方 前提条件 Creating App Engine Queue…
概要 Voice.csv の ID をリネームし、VoiceId カラムを持つ他の複数の CSV もリネームに対応するという機会があったのでメモ。 require 'csv' class Voice def self.rename(str_id) case id = str_id.to_i when 1..988 return 0 + id - 0 when 989..1196 ret…
概要 Unity で Firebase プロジェクトを開発環境と本番環境を分けました。 その際に行ったことのメモです。 ドキュメントを読んで こちらが「複数のプロジェクトを構成する」ドキュメントになります。 iOS アプリケーションで複数の環境をサポートするでは、…
概要 Unity で iOS ビルドし、iPhone 実機で実行し、Unity のログを見るときのメモ。 Unity ビルド Unity で File > Build Settings を開き、 Platform を iOS Run in Xcode as を Debug Development Build にチェック Script Debugging にチェック Build を…
概要 GCE の起動スクリプトで rbenv をインストールしたときのメモ #!/bin/bash set -e RUBY_VERSION="2.5.1" apt-get update apt-get install -y git build-essential libssl-dev libreadline-dev zlib1g-dev libmysqlclient-dev nodejs mysql-client git c…
bin/rails sample:task[a,b] 引数 a, b を扱う sample:task を実行する場合、 require 'rake' Rails.application.load_tasks Rake::Task['sample:task'].execute(Rake::TaskArguments.new([:a, :b], [a, b]))
概要 Homebrew の mysql をアップデート(5.7 -> 8.0)したところ、Mac のローカル環境で開発中の Rails でエラーが発生したのでメモです 開発環境について ローカルの rbenv, bundler を利用 mysql などのミドルウェアは docker-compose で立ち上げたものを利…
9/19,20 の2日間にわたって開催された Google Cloud Next in Tokyo '18 に参加してきたので、 講聴したセッションの内容や感想、全体を通じて感じたことを報告します。 共有しようと思ったこと AutoML を利用すれば、コードを書かずに、カスタムモデルを作れ…
概要 現在、k8s 上に構築している rails アプリを app engine に移行することを考え、app engine を試してみたので、そのメモ。 環境ごとに GCP プロジェクトを分けるか ドキュメント 重要: 各 Cloud Platform プロジェクトには、1 つの App Engine アプリケ…
概要 jalkoby/squasher を使って、マイグレーションファイルをまとめたのでメモ。 db/structure.sql でスキーマ情報を管理している。 インストール gem 'squasher' bin/squasher を作成 $ bundle binstub squasher 使う application.rb の下記をコメントアウ…
概要 先日、BigQuery ML が発表されたり、ML がますます進展している。 少しずつ学んでいきたいと思い、とりあえず、学習モデルを自作することをしてみた。 だいぶ前に、Tensorflow の手書き文字のチュートリアルをやったことがあるが、機械学習について一切…
概要 Locust。Python 製の負荷試験ツール。 シナリオが Python で書けるので、複雑なシナリオも作れそう。 Helm があるが、tasks の中を書き換える必要があり、fork して tasks を書き換え、helm chart を公開するのは面倒なので、Google公式のチュートリア…
概要 GCE 上に JMeter サーバークラスタを作成し、ローカルの Mac 上の JMeter クライアントから制御し、結果を取得してみたのでメモ。 GoogleのJMeterのドキュメント(古い...) JMeter Remote Testing こんな感じのイメージ 手順 とりあえず、jmeter server …
概要 terraform の実行を travis ci 経由で行うようにしたので、メモしておきます。 メルカリが開発しているOSSの tfnotify を使い、master ブランチへの PR 作成時、terraform plan を実行し、結果をPRにコメント マージ時、terraform apply を実行 するよ…