(これはこの記事からの転載です) FireStoreのイベントは、Eventarcを用いることで他のサービス、例えばCloud Runなどをトリガーできます。 今回、Eventarcを用いてFireStoreのイベントをトリガーとしてCloud Runを呼び出してみることにします。 EventarcはAuditとPub/Subの両方から流し込むことができます。PubSubはCloud PubSubとして他のいろいろなところから流し込むことができ、AuditはFireStoreのイベント以外にもGoogle Cloudで起きるほぼすべてのAPI呼び出しをイベントとして流し込めます。 1. 取得したいイベントの監査ログを有効化する 最初にEventarcを有効化する監査ログの種類を指定し、有効化します。 IAM権限管理 -> 監査ログ で、 "Firestore/Datastore API"
ほんの些細な見た目の違いで、「UI良さげだな〜」という思い込みが崩れることがあります。 エンジニアは、最適なユーザー体験を実現するべく、その錯覚をローカル開発の時点から目指すべきです。 以前、自分でGo製のDBレプリケーションツールを作成して、この問題を解決しました。 ですが、最近AppEngineを触ってる自分からすると、果たしてどうやればデータをコピーできるのか、ましてやDatastoreともなるとMySQLとかと違ってインターフェースが違うのでは、困る!と思っていました。 しかし、AppEngineでDatastoreを使っている場合、これは非常に簡単に解消可能な問題でした。 事前準備Remote APIの有効化事前準備として、AppEngineのRemote APIというものに対して、アクセスする窓口を作る必要があります。API経由でDatastoreを叩くためです。 今回はGoの
(本記事は今年の夏頃に某勉強会で発表した内容の焼き直しです。参加者の方が読むとかなりの部分重複があると思いますがご容赦下さい🙇♂️) はじめに 旧Cloud Datastore(以降、旧Datastoreと記します)を長く使ってきましたが、そろそろFirestore in Datastore mode(以降Firestoreと記します)に真面目に取り組もうと重い腰を上げることにしました。 Firestoreの仕様はDatastoreとほぼ変わらないですが、主にトランザクション周りに大きな変更があります。 本記事ではFirestoreのトランザクションの挙動を実際にプログラムを動かしていろいろ検証してみます。 なお、本記事ではnative modeについては扱いません。 ただ、おそらくトランザクション周りの挙動はほぼ共通なのではと思っている(違っていたらごめんなさい)ので、参考にはなるか
ここがわかりやすい http://blog.sojiro.me/blog/2016/08/07/about-gae-datastore/ Entities Table DatastoreのEntityを保存するBigtableのテーブル このテーブルのカラムはEntity keyとEntity Serializedの2つ Entity keyにはEntity Keyが入る Entity Serializedにはシリアラズされたバイトストリームが入る よってインデックスを作らない限りEntityのプロパティ内容に基づくクエリ、フィルタ、ソートなどは実行できない Entity Key A complete key is the combination of the entity "Kind" and the entity ID or the entity key name. The entit
Lv:19 Exp:75918 メカです。 Cloud Computer と Neural Network に興味があります。 ”トランザクション” 聞いただけで嫌厭する方も少なくないのでは? Datastore のトランザクションに関して、 そもそも RDB のときからトランザクションってよく分からなかったってのにDatastoreになってますます混乱しそう いきなり Datastore から始てみたけど、トランザクションがよく分からない といったように”トランザクションうわぁ”と思ってしまってませんか? そんなあなたの垣根を少しでも取っ払い、 Datastore を触ってもらえたらなぁという期待を胸に執筆しました。 Datastoreのコードと一緒にMySQLのクエリを並べ、さらに、開発でよく見かける6つのパターンに分けて、実装例と共に説明していきます。各パターンについて具体的な要件の
GAE/J+Slim3の語彙・知識を元にここに解説を書く。 GAE/Goの知識とGo言語の知識が混ぜこぜで書かれているかあまり気にしてはいけない。 以下の調査結果を得るためのテストコードはここに置いた。 EntityにKeyは付属してこない structを定義する時に、そのstructに自分自身のKeyを持たせる方法はない。 EntityにIdまたはNameを自分で定義して、Putする時、Getした後にそこに忘れずにId, Nameを取り出したり移し替えたりして頑張る。 これを自動でやってくれるライブラリがgoonである。 IncompleteKeyはPutした後でも値は変わらない key := datastore.NewIncompleteKey(c, "Test", nil) newKey, err := datastore.Put(c, key, foo) // keyはIncomp
僕の Datastore の記事は Cloud Datastore/AppEngine Datastore 時代のものなので、現在の Firestore の Datastore mode だと一部の内容が正しくないと思うので注意してください。(´・ω・`)— pospome (@pospome) March 24, 2021 Datastoreを使っていて、 ある程度コツとか注意点みたいなものが分かってきたので、 まとめてみました。 継続的に追記していく予定です。 間違っているところがあれば コメント or twitter で教えてください。 Datastoreの entity, kind などの用語は理解している前提です。 ParentKeyに気をつける Go では Filter による OR, IN 検索ができない 文字列に対する LIKE 検索がない 結局どんなクエリが発行できるのか
何の話かというと Cloud Datastoreに対するQueryは、"Ancestor Query" を使用する事でStrong Consistencyが保証されます。逆に Ancestor Query を使用しなかった場合にどのような現象が発生するのかを雑多にメモしておきます。ここでは、GCEのVMからDatastoreにアクセスする前提で、google.cloudクライアントを使用します。(現在、ndbクライアントはGAE限定なので。) Ancestor Queryとは? Cloud Datastoreに格納するEntityは、それぞれに「親」Entityを指定することで、ツリー状のグループを構成します。1つのツリーを「Entity Group」と呼びます。Ancestor Queryは、Queryの検索条件として「Ancestor Key」を指定して、検索範囲をその下にぶら下がった
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く