You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
先日公開した Web API サービス Pixelaは、Google App Engine 上で Go Web Application として動いている。Go のバージョンには特に気を使わずに開発をしてたんだけど、GAE で Go の 1.11 がサポート(まだ β だけど)されたこと、そして Go 1.11 であれば GAE Standard Environment で System Package として imagemagick が使えそう(svg → png 変換がしたい)ということもあって、Go 1.11 へのモチベーションが俄然上がったので、今回移行してみた。このエントリは、その際にやったことのまとめメモ。 Before Go 1.9.4 パッケージ管理はなにもしてない状態(ひどい) After Go 1.11.1 パッケージ管理に Modules を使用 やったこと goenv
Go developers have been using Google App Engine as a fully managed, scalable and pay-for-what-you-use solution to host websites and APIs since 2011. However, it came with some restrictions: You had to organize your code in a non-idiomatic way and had to use a special SDK to start your app, make network connections or store data. Today, we are introducing the beta availability of the Go 1.11 runtim
Betaが公開されたので早速触ってみたのでサラッと書いてみた go1.9ランタイムからgo1.11ランタイム(2nd gen)に移行するためには最低限やることと気をつけること 中身的には このへん の内容です。 app.yamlで go111 ランタイムを指定する 今までは多分 api_version で指定していたと思いますが、 api_version は Deprecated になります。 そのため、 runtime へ指定します。 また、以下のタグも同様に Deprecated になります application_readable builtins login libraries threadsafe skip_files Deprecatedのフィールドを利用している場合、deploy時にエラーになるようです。 サービス単位でmainパッケージが必要 旧世代のランタイムだとinit
Google グループでは、オンライン フォーラムやメール ベースのグループを作成したり、こうしたフォーラムやグループに参加したりすることで、大勢のユーザーと情報の共有やディスカッションを行うことができます。
GAE/GoだとStackdriverErrorReportingの通知のStacktraceからSourceRepositoryのソースコードに直接飛べるGoGAEGoogleAppEnginestackdrivergooglecloud 昨日ふと投稿したtwitterが結構RTやイイネが付いたのだけど、twitterの長さの制約の関係でちょっとした注意点が漏れていたので記事にしてみた。 twitterの投稿内容はこんな感じ GAE/Goだと、Stackdriver Error Reportingに通知されたStacktraceのHoge.go:90などのようなリンクからCloud Source Repositories のコードに直接飛べるので、どの行でエラー出たのかすぐわかるのでもう手放せない。 https://t.co/MfTnizr5tX — kiyo (@chidakiyo)
メリークリスマス!(昨日) これはVue.jsアドベントカレンダーの記事です。 代打です。 僕は初日にサーバーサイドレンダリングについて書きましたが 今回もサーバーサイドレンダリングです。 今回の内容は本当は初日に書きたかったのですがずっとうまくいかずに悩んでいたけどつい昨日できたGoサーバでのSSR(サーバーサイドレンダリング)です。 GoでSSRをするメリットとしてまず一つにポータビリティです。 Node.jsもポータビリティはありますが、Goであればアセットもワンバイナリにまとめることができるのでバイナリを配置するだけでWebUIがあるツールも作ることもできるかもしれません。 そして、僕にとって1番のメリットであるApp Engine(GAE)でSSRができるようになります! SSRについては初日の記事を見てください! サンプルの実行 https://github.com/k2wan
はじめに みなさんはGAE/GoのSDKがどうやってコードをビルドしているのか知っていますか? 私は正直ふわっとしか理解できておらず、きっと小人さんがビルドしてるんだろうなくらいに思ってました。 当然、小人さんじゃなくて、どこかにgoapp buildとかを呼んでいるコードがあるんだろうとは思っていましたが、どうやらgo-app-builderというツールがそれをやっていることを知ったので、調べてみることにしました。 今回は、ソースコードを読んでいく過程で分かったことをまとめたいと思います。 なお、ここではSDKのバージョンはappengine-1.9.48を使っています。 ソースコードはどこにあるのか さて、go-app-builderはどこにあるんでしょうか。きっとSDKのディレクトリのどこかです。 実はSDK以下にあるgorootの中に入っています。 $ ls $(goapp env
testerator はGoogle App Engine for Go(以下gae/go)のUnit Testを高速化するために生まれたライブラリです。 gae/goはサーバのSpinUp速度がJava, Python, PHPに比べて高速なので、最近App Engine Developerたちの間に人気ですが、いかんせんUnitTestの遅さだけは洒落にならないレベルで遅いです。 それを緩和するために生まれたのが、 testerator です。 testerator がやってくれることを理解するためには、まずgae/goのUnitTestがなぜ遅いのかを理解する必要があります。 gae/goのUnitTestが遅い原因は、テスト環境がgae/pythonの環境に間借りしているからです。 例えば、公式のサンプル にある通り、 aetest.NewContext() を利用すると、裏ではg
はじめに go test(GAE/Goの場合はgoapp test)で、自身のプロジェクトのテストを走らせる際、非常に時間がかかってしまいテストの実行が億劫になることがあります。 特にGAEだとaetestパッケージを使わなくてもそれなりに時間がかかります。 GAE/Goのテストを早くするには、favclip/testeratorを使ってインスタンスを使いまわすという方法もあります。 しかしながら、それでもそれなりに時間がかかるので、どうにか更新のあったソースコードに関わるテストだけ実行できないかと考えました。 なお、この記事ではgitなどを使ってバージョン管理している前提で書いています。 また、おそらくちゃんと動くだろうとは思いますが、まだ検証中なのでデプロイする前には、ちゃんとすべてのテストを実行することをオススメします。 coverprofileを使う go testのオプションには
はじめに Google App Engine for Go (GAE/Go) を使っていて、ローカルでデバッグがしたくなることがあるかと思います。 Goにはいくつかデバッガがあり、IDEが対応しているものもあります。 ここでは Delve というデバッガを使ってデバッグする方法を紹介します。 Delveは動いているGoのプロセスにアタッチしてデバッグすることができます。 そのため、GAE/Goのローカルサーバのプロセスにもアタッチしてデバッグすることができます。 しかし、GAE/Goのローカルサーバのプロセスは、複数動いていたり、切り替わったりするため、一筋縄ではいきません。 ここでは、以下の記事を基に、ターミナル上でローカルサーバのデバッグをやってみます。 Debugging Golang Appengine module with Visual Studio Code Delveのイン
Package github.com/qedus/nds is a datastore API for the Google App Engine (GAE) Go Runtime Environment that uses memcache to cache all datastore requests. It is compatible with both Classic and Managed VM products. This package guarantees strong cache consistency when using nds.Get* and nds.Put*, meaning you will never get data from a stale cache. Exposed parts of this API are the same as the offi
Configuring Your GOPATH with Go and Google App Engine When I started working with Google App Engine and Go, I wasn’t sure how to best configure my GOPATH when developing Google App Engine applications. You can find documentation on this aspect on the Go and App Engine page, but being new to both Go and App Engine I was not aware of what options were available, and what their pros and cons would b
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く