ローカルでPub/Sub, Cloud Functionsを同時に動かしながら動作確認する

こんにちは、ピリカ開発チームの九鬼です。

SNSピリカのサービスでは App EngineからPub/SubにメッセージをPublish → サブスクリプションフィルタで絞り込み → Cloud FunctionsからCloud Tasks経由で再度App Engineに戻して処理するケースがあります。

f:id:pirika-inc:20211015162905p:plain
SNSピリカサービス GCPサービス間連携例

ローカル環境で開発するとき、Pub/SubからCloud FunctionsをPushサブスクリプション経由で呼び出したいことがあります。

その際のやり方について、備忘録として掲載します。

続きを読む

DooD(Docker outside of Docker)で、Docker Composeで一部コンテナを逐次アップデートする

こんにちは、ピリカ開発チームの九鬼です。

Docker Composeで複数コンテナからなるサービスを動かしている最中に、一部コンテナをアップデートしたいことがあります*1

そこで、本記事ではその方法を紹介します(もし、さらに良い方法がありましたらぜひ伺いたいです)。

*1:例えば深層学習において、あるメンバーはTensorFlowで解析するサービス、あるメンバーはPyTorchで解析するサービスを作る、という構成が挙げられます

続きを読む

リモートワークで固定IPするために: VPNの認証のためにRADIUSサーバーをつくる

こんにちは。 ピリカ開発チームの伊藤です。

ピリカでは開発環境へのアクセスを保護するための一環としてIP制限をしていますが、ピリカという会社は元々リモートで仕事をしている人が多く、またオフィスのIPアドレスは動的IPの時代が続いていました。

そこで、各自のIPアドレスを固定化するためにVPNやプロキシサーバーを構築していますが、その認証の管理をできるだけGoogle Workspaceの権限を元にやりたいと考えました。

この記事では、VPNやプロキシの認証をするための前段として、Google Workspaceの情報と連動した独自の認証基盤をどのように作ったかを紹介します。

続きを読む

TensorFlow 2.xでObject Detection APIを使うにはTensorFlowバージョンを揃える必要がある話

こんにちは、ピリカ開発チームの九鬼(niccari)です。

機械学習周りで物体検出したいとき、TensorFlowとともにObject Detection APIを利用することがあります。

Object Detection API側のアップデートで新規Docker環境が動かなくなったことがありました。

続きを読む

BigQueryのデータを定期的にGooleスプレッドシートに出力する方法

こんにちは、ピリカ開発の冨田です。

今日は、BigQueryのデータを定期的にGooleスプレッドシートに出力する方法について書きたいと思います。

今回使用するツールはOWOX BI BIgQuery Reportsという無料のアドオンツールです。

というのも、GoogleのConnectedSheetを使用すれば、同様のことは可能なのですが、使用できる条件が、合わなかったので他の方法を探しました。

続きを読む

Google Cloud Functionsで、GitHubのprivateリポジトリにある自作ライブラリを使う方法

初めまして、ピリカ開発チームの九鬼と申します。

Google Cloud Functions(以後、GCF)でアプリをデプロイするとき、Cloud Build環境でSSHキーにアクセスできません。そのため、GitHubのprivateリポジトリにアクセスできないので、アプリのソースコード上に自作ライブラリをあらかじめ組み込んでおく必要があります(公式リファレンス)。

しかしながら、pip install -tでインストールした方法ではいくつか問題があります。

そこで本記事では、ライブラリをwhlに固めてから組み込む方法を紹介します。

続きを読む

SVG内の色をプログラムから指定する

こんにちは。 ピリカ開発チームの伊藤です。

SVGは解像度や拡大縮小に依らずきれいな描画が得られるため、アイコンなどの描画に最適なフォーマットです。 SVGフォーマットの画像にある色などは外部からスタイルを上書きすることで色を変更できます。

例えば、地図上のマーカーを状態により色を変更するといった用途で使用することができます。

f:id:pirika-inc:20210909093714p:plain

ここではReactにSVGファイルを読み込ませて、色を動的に変更する方法をご紹介します

続きを読む