Proxyのプログラムが新しくなったらしい。スネークケース(cloud_sql_proxy)からハイフン(cloud-sql-proxy)のプログラムに変わってました。オプションとかも全然違うのでちょっとハマりました。cloud-sql-proxyTCP接続用に起動する。プロジェクト名とリージョン名とインスタンス名をコロン区切りで指定します。今までのcloud_sql_proxyだとこれでよかったんですが、新しいやつはそのままだと認証が通りません。loginで認証している情報をcloud-sql-proxyで使うには下記をやります。SQLのインスタンスに接続できます。FunctionsのRubyでクソちょっとした処理フィヨルドブートキャンプではチャットをSlackからDiscordに移行しようとしています。DiscordにはSlackのようなReminder機能がメジャーなBotの中には無いので定期的なミーティングのリマインドを簡単に移行することができません。有名なreminder-botでは「72時間おきにリマインド」のような単純Interval形式しか対応してません。「毎月1日の9時にリマインド」のようなことができないので困ってました。Functionsでやってみました。Schedulerでcronと同じインターフェースで時間を指定できるのでjobを作ります。ターゲットにはHTTPを指定してリクエストを飛ばしたりもできますが、Pub/Subも指定できます。Pub/Subはややこしいかと思ってたんですが単に名前決めて作るだけでした。FunctionsではPub/Subで作ったイベントをSubscriptionしてそのタイミングで実行できます。チャンネルで始まります。headers)endDiscordの発言はwebhookにPOSTするだけです。Schedulerからpayloadに何か値を入れてれば上記のeventの中にそれが(base64でエンコードされて)入っているのでその内容を使って処理を分けたりもできます。(実際のコードでは3種類の通知をそれで出し分けてます。)最初のテンプレにGemfileも含まれていて、gemを使うのも何にも苦労せずでした。Functionsは高度な用途もありますが、こういうふうに週1回しか動かないクソちょっとしたプログラムを動かすにも安くていいなと思います。公式ドキュメントにもしっかりあるし、みんなデフォルトでやってるかもしれないけど、すごく早くなったのでご紹介。'Dockerfile']そこの前に下記のように前回最後にbuildしたイメージを取ってくるようにして、build時に--cache-fromを入れると良い感じに前回のイメージを使ってくれる。'Dockerfile']24分ぐらいかかってたのが4分になって嬉しい。Railsで動かしています。1ヶ月使ってみた結果、8,000円ぐらいでした。SQLが7,000円って感じです。Buildとかちょこまかしたのはありますが誤差の範囲。Runは1コンテナだったら1日10円ぐらいなんですよね。信じられないほど安い。これでDockerイメージ放り込んでおけば自動スケールの環境が手に入るならほとんどの仕事のアプリはこれでいい気がします。パフォーマンスもいいし、これからのアプリは全部これで行こうと思います。+0000BigQueryで連番を生成するpostgresでいうgenerate_series的なのは無いようなのでベタに書く。+0000BigQueryにテーブルを作ってcsvをインポートするテーブル作成・データインポートは一気にできる。Storageからのインポートの方が断然速い。gzip圧縮したCSVに対応してるので料金・速度の面からもやっといたほうがいい。スキーマは引数で指定できる。TIMESTAMPは色々なフォーマットをパースしてくれる。(今回はUNIXTIMESTAMP形式を読み込ませた。PlatformGCSへのアップは速いのに、BigQueryへの直接アップが遅いのはズルい。+0000BigQueryでテーブルを作るスキーマを作る。./posts.json便利じゃのう。gs://my-bucket-name/便利ですね。SQLに接続するGCPの管理画面から静的IPアドレスを割り当てる。SQLの管理画面からrootユーザーにパスワードを設定する。SQLの管理画面から上記IPアドレスを許可する。接続できることを確認する。