技術記事以外

技術記事以外の振り返りやその日学んだことのちょっとしたメモなどを置く予定です

GCP

今日の学習メモ

youtu.be ShardはWRITEを早くするものなのでREADにはさほど差が出ない Interleaveの利点はトランザクションがAbortされにくくなること、デメリットは子テーブルをPrimaryKeyを横断して検索するのが遅くなるということ。親のデータと共にしか検索しないという…

今日の学習メモ

GCPUG Spanner Day Spannerの新機能であるバックアップ、もともとexport/importを使えばできたといえばできたけどより手軽にできるようになった。ひっくり返すと、あくまでバックアップ/復元なので、export/importみたいに別のインスタンスに中身移したりに…

今日の学習メモ

GCP

GAEにデプロイしたアプリの中で使うサービスアカウントをapp.yamlのGOOGLE_APPLICATION_CREDENTIALSで指定している時、そのcredentialが見つからないと500になる。GCPのLoggingみたら明確にエラーが出るけど、クライアント側だとCORSエラーとしてエラーが表…

今日の学習メモ

Firestoreで改行込みの文字列を保存したいときは、普通に改行文字の"\n"を利用すれば良い。が、そのままでは使えない。コード内でstringに改行文字を含んだときはASCII 10に置ける単一の文字として認識するのと異なり、例えばコンソールに手打ちで改行文字を…

今日の学習メモ

細かい権限管理をしたいmysqlユーザーを作るときは、CloudConsoleからやるんじゃなくてmysqlに接続して行う CloudSQLから返って来る値を確認するとRowなんとかセットみたいな名前がついている不思議なオブジェクトが見えるけど気にせずJSON.stringifyしてフ…

今日の学習メモ

GCP

ドキュメントをみた感じ、Spannerと違ってCloudSQLには専用のクライアントライブラリはない様子 基本的にDBへの操作は全てMySQLなどに接続して行うので、コンソールからデータ追加したりはできなさそう そうか、自前のサーバーでMySQL動かしてたのがただクラ…

今日の学習メモ

GAEでNodejsを使うときは、npm scriptで明示的にファイル名を指定しないとserver.jsと判定されてしまうので例えばindex.tsなど別のファイル名を使っていると死ぬ Nodeでresponse.setHeader()とres.writeHead()を併用したらデプロイ後送信済みのレスポンスに…

今日の学習メモ

firebaseプロジェクトはGCPコンソールのプロジェクト切り替えダイアログの最初のタブの「最近のプロジェクト」に出てこないので、GCPコンソールでプロジェクトを切り替えたいときは「全てのプロジェクト」から選ぶか検索すると良い firebase-admin SDK使うと…

今日の学習メモ

To execute the job periodically, first I thought about combining cloud function and cloud scheduler. However, most example are consisted of cloud function + pub/sub + cloud scheduler. Take a little moment and I realized why. Then I found o…