emahiro/b.log

Drastically Repeat Yourself !!!!

GAE

CLOUD SDK で python2 系が切られて aetest が落ちるようになった問題

Overview Update to Pyhon3 にて Goole Cloud SDKを同梱した Docker Image 本体にて Python2 のサポートが切られたために、Python2 系でのみ動作する App Engine を起動するコマンドの dev_appserver.py が動作せず、本家の Google Cloud SDK - Dockerfile …

ビルドタグで appengine.Main() の向き先が変わる話

Overview AppEngine の Go1.11 対応において gin の version を最新の 1.3 系にあげたときに以下の問題にはまったのでその調査メモです。 gin の version を現時点(201904)での最新の 1.3 にあげ、appengine.Main() を使うコードに変更すると、AppEngine / G…

app.yamlでmainを指定して静的ファイルをサーブする

GAE

Overview Google App Engine 2ndGenにてapp.yamlの設定でmain property を指定して、mainで指定した path をプロジェクトの root として静的ファイル( static や template 配下のファイル)が正常に読み込めるかどうか調べました。 以前も静的ファイルのサー…

テストの中で使うダミーデータを作成する

前提 Google Cloud Datastore Google App Engine Standard Edition 1st Generation appengine package を使うこと を使ったケースにおいてデータベースのアクセスする実装のテストを書くときにダミーデータをセットアップする方法を記載します。 今回は追加…

App Engineでマルチテナントなアプリを作る

Google App Engine上でマルチテナントなアプリを作る方法について調査したのでブログにまとめてみます。 マルチテナントとは? IT用語辞典には以下のように記載されています。 マルチテナントとは、SaaSやクラウドコンピューティングなどで、機材やソフトウ…

AppEngineで静的ファイルをサーブする設定について

ふとした拍子に忘れてしまうappengineでの静的ファイルをサーブする設定についてのメモです。 内容はほぼ Serving Static Content | App Engine standard environment for Go | Google Cloud に載ってる内容です。 例えば以下のようなディレクトリ構成を考え…

AppEngineのGo1.11のランタイムを簡単に試してみた

GAE/Go1.11のランタイムを実際にデプロイまでしてみましたよっていう内容です。 準備 ディレクトリ構成 以下のようなディレクトリ構成でプロジェクトを作成しました。 $GOPATH └── src ├── app │ ├── app.yaml │ └── main.go └── handler ├── index.go └── i…

AppEngineのGo1.11.0のランタイムについて浅く調べてみた

GAE/GoでGo1.11のランタイムがBetaになっていたので調べた内容をまとめてみます。 なお、基本的にはドキュメントに書いてあることを舐めてるだけの内容になります。 参考 先に参考を明示しておきます。ここだけ見れば、GAE/Goを現在使ってる人ならその差分が…

iTerm2で goapp test の実行結果を見やすくする

goapp test で単体テストを走らせた時に RUN/PASS/FAIL が見づらいので iTerm2 で goapp test を見やすくする設定を追加します。 設定方法 Preference > Profile > Advanced > Triggers で特定の文字列だった時にハイライトさせるTriggerを設定します。 例え…

goappコマンドを入れ直した話

Overview GAEを使う場合、localにapp-engineのSDKを入れる必要があります。 少し前までは brew install app-engine-go-64 を叩くと goapp コマンドがlocalにinstallされ、使うことができましたが、ある時から formulla から消えてしまい、brew 経由でDLする…

GCSに保存してあるデータを取得する

※ 当たり前のことでドキュメント通読すればいい話ですが、ちょっとハマったので備忘録として書きました。 Google Cloud Storage(GCS)に保存してあるデータを取得するという話です。 GCSから取得する時 storageパッケージを使います。 godoc.org データを取得…

gin✕GAEの環境でhandlerのunittestを書く

前提 goのhandlerレイヤー、MVCのApplicationで言うところのcontrollerのレイヤーのテストを今まで書いてきたことは少なかったのですが、意図しないinputに対して、正常なレスポンスを返さない(400とか401とかを返す)ようなEPを想定した時にhandlerとは言え…

gae上のアプリに対してService Workerを登録する

やりたいこと gae上で動いているアプリに対してService Workerを登録します。 やること service worker用のjsファイル sw.js を登録すること。 sw.js ファイルのレスポンスヘッダーに Service-Worker-Allowed:/ を登録すること。 手順 1. sw.jsを読み込むに…

(続)goでのhttpの書き方あれこれ

以前書いたこれの続き ema-hiro.hatenablog.com 以前書いたgoでのhttpの書き方の内容の続編です。 Postの書き方とAutorizationヘッダーを付けたリクエストを構築するときの方法を備忘録としてまとめました。 標準パッケージはこちら https://golang.org/pkg/…

goでのhttpの書き方あれこれ

goの標準 goでhttpの処理を書きたいときはnet/httpパッケージを使う。 強力なパッケージなので、基本これを使うで、やりたいことの殆どはまかなえてしまうと思う http.Get(url) package main import ( "fmt" "io/ioutil" "net/http" ) func main() { resp, e…