Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...
みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー 関連 : microneを使ったらApp EngineのTwitter botが14行で書けた Flaskというフレームワークを使って,Google App EngineでTwitterのBotを作ってみたら15行で書けてしまった(あと5行短くなるけど,PEP 8というPythonのスタイルガイドを破ることになるのでそこまで短くしない)。 まずはコードを見てもらいましょう。 #coding: utf-8 from random import choice from twython import core from flask import Flask app = Flask(__nam
App Engineで使える言語は基本的にはPythonとJavaです。それでは、どちらを選ぶのが良いのでしょうか。 それ以外の言語の人向けの話は後から出てくるのでしばらくこのままお読みください。 趣味ならば単に好きなものを選ぶだけでいいのですが、仕事で使うためには、長所と短所をきちんと把握した上で選ぶ必要があります。また、ここでの話は言語としての一般的な話ではなくApp Engineで使うとき限定の話としてお読みください。 まず安定度ですが、インフラ部分の安定度は、どちらも基本的に同じです。もしかすると、まったく同じものを使っているのかもしれません。 その上で動くAPIの部分は、インフラと直接結びついている低レベルな部分と低レベルなAPIの上に構築された高レベルな部分とに分けて考える必要があります。 低レベルなAPIはLLAPIと呼ばれたりしますが、安定度は、PythonとJavaも同じ
Google App EngineにはTransactionは1つのEntity Group内でしかできないという制限があります。詳しくは、App EngineのEntityGroupを理解しよう - yvsu pron. yasを参照してください。 そうするとある口座から別の口座にお金を振込むような送金のパターンで、Transactionを利用することができません(すべての口座を1Entity Groupに押し込むと更新がぶつかって現実的ではないから)。送金パターンで整合性を保つためには、理論的には次のようになります。 http://songofcloud.gluegent.com/2009/11/blog-post_18.html 実装するとこんな感じ。 http://blog.notdot.net/2009/9/Distributed-Transactions-on-App-Engi
Google App Engine上でアプリを作りはじめて約二ヶ月。いろいろと分かって来たこともあるので、自分へのメモも含めてまとめてみる。まずは、Datastoreの話から。 なによりも大切なのはデータベースの設計 あたりまえと言えばあたりまえの話だが、App Engine上でアプリを作る上でもっとも大切なこと(=頭を使うべきところ)は、データベースの設計である。特にリレーショナル・データベース(RDB)上でのアプリ作りに慣れた人には、大きな「発想の転換」が必要なので、ここは注意が必要。 特に絶対にやっては行けないのは、 将来RDB上へ移行できるようにレイヤーを作って、その上にアプリを作る RDB上に作ったアプリをデータモデルを大幅に変更せずにApp Engine上に移植する RDBを前提に設計されたフレームワークをApp Engine上に載せて、その上にアプリを作る など。App En
Google App Engineだと、30秒制限があって長い処理が書きにくいのですが、タスクキューは処理中に例外が発生したり30秒制限にひっかかったりすると自動的に呼び直されるので、これを使って長い処理を実行することができます。 ということは知っていたんだけど、実際どうなのかと思って試してみた。 まずこんなサーブレット書きます。 ※GAE/JはServlet3.0に対応してないので、@WebServletアノテーションは擬似コードだと思ってください。 5秒に一回QueueTestに現在値を記録するという処理を行うループを20回繰り返します。5秒×20=100秒 >> 30秒なので、確実にタイムアウトします。 タスク開始時の値をQueueLogに記録しておきます。 @WebServlet(urlPatterns="/queue/testqueue") public class TestQu
追記(2009/11/29 19:26): Google App Engine 0.0.5 gem では、この記事通り動かすことができなくなっていますのでご注意ください。 google-appengine という gem のおかげで、簡単になっています。XML 書かなくて済みます。 Rails Primer for Google App Engine with JRuby ところで、この記事通りやってもうまくいかなかったので、自分のやり方を書きます。 Hello world アプリを作ってみます。まず、gem で google-appengine をインストールします。 $ sudo gem install google-appengine CRuby の gem です。いろいろと関連 gem がインストールされます。 appengine-apis という gem が入っているとこの後うま
Google検索サービスのインフラストラクチャを基盤にした「Google App Engine」。各種ライブラリやアプリケーション・フレームワークが提供される。データを永続的に保管するサービスがあり,それをデータベースのように利用可能。その一方で,「リクエストの処理は30秒以内」といった制約がある。 米Googleが提供する「Google App Engine(以下,GAE)」は,Webアプリケーションの開発・実行環境を提供するサービスです。基本的にはGoogle検索サービスと同じシステム基盤なので,スケーラビリティに優れた実行環境であるといえるでしょう。GAEの上でアプリケーションを開発する際,何がポイントとなるのでしょうか。その基本を,今回と次回の2回に分けて解説します。 今回はGAEの概要編で,まずGAEの全体像を説明します。そのうえで,開発の手続きと環境,提供されるライブラリとフレ
(随時更新中です。間違いなどありましたらコメントをお願いします!) このページのtinyurl: http://tinyurl.com/gaetips Datastoreのtips Bigtableの内部構造 BigtableによるDatastoreの実装 Datastoreによるクエリの実装 トランザクションとエンティティグループ Datastoreのtips List Proprtyとmerge joinの使い方 GAE一般のtips GAEのサーバー構成とリクエストの流れ Task Queue APIの使い方 開発環境とプロダクション環境の違い Flex/AIR+GAEのtips GAE/JにBlazeDSを組み込む BlazeDSの本番環境へのデプロイでハマる Datastore APIの取り扱いでハマる App Engine開発の便利な参考ページ TOPGATEさんのGoogle
はじめに 6月9日に開催された「Google Developer Day 2009」で、夷藤勇人氏と鵜飼文敏氏により「Javaで動かすGoogle App Engine」というセッションが講演されました。本稿では、その概要をお伝えします。 Google Developer Dayとは、Googleが主催する開発者向けのイベントです。例年、Google Japanのスタッフのみならず、世界中のオフィスからソフトウェアエンジニアやデベロッパーアドボケイト(advocate;支持者)、API Expert(Google認定のサードパーティエンジニア)が駆けつけて、Googleが関わる最新のテクノロジーのセッションが行われています。 セッションでは、前半で夷藤勇人氏がGoogle App Engineの概要を説明し、後半で鵜飼文敏氏がデータストアについて説明しました。 以下、罫線で囲んだ部分は、セ
Google App Engine Google App Engine Teamは10 things you (probably) didn't know about App Engineにおいて、Google App Engineによる開発方法が変わる10の事実を紹介している。App Engine Teamはディスカッショングループに参加することで、ユーザがGoogle App Engineのいくつかの事実に注目していないことに気がついたという。これを知ると知らないのとでは、Google App Engineを使った開発方法が変わってくるということだ。紹介されている事実は次のとおり。 バージョン番号は数値ではなく文字列。このためバージョン番号にliveやdevといった文字列を使うこともできる アプリケーションは複数のバージョンを同時に実行できる。version.latest.yourap
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く