GCP

GAE/Pythonでサービスアカウントキーファイルを使わないようにした

こんにちは。ピリカ開発チームの伊藤です。 GCPの各種サーバーレスサービスにアクセスするには、認証情報が必要となります。App EngineやCloud Functions上で動作している場合は、GCPの各種ライブラリを使っていれば特に何もしなくても認証が通った状態とな…

GoogleAppEngineでCloud SchedulerからのHTTPリクエストのみを受け付ける

こんにちは、ピリカの開発の冨田です。 ピリカのごみ拾いSNS「ピリカ」は、Google Cloud Platformを利用しています。 その中で、定期実行させたい処理を、Cloud Scheduler→AppEngineで行っています。 Cloud SchedulerからApp Engineに対してHTTPリクエストを…

GeoPandasをGoogle App Engine(GAE)上で動かすためには、libspatialindexを事前ビルドする必要がある

※ 2021年4月時点での検証内容であり、ライブラリ側の更新により解消済みの可能性があります。 GAE上でGeoPandasを動かすには、libspatialindexをDebian系x64 OS上でビルドして依存関係に含めておく必要があります。本記事ではその方法を共有します。

Cloud NDBのredisキャッシュでredis-namespaceを使うとキャッシュキーのコリジョンを起こすことがある件

こんにちは、ピリカ開発チームの九鬼です。 SNSピリカのサービスでは、データ永続化用にCloud NDBを使用しています。また、データ取得のスループットを高めるためCloud Memorystore for Redisを利用しています。 SNSピリカ データベース周り概念図 そこで、…

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

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

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

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

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

初めまして、ピリカ開発チームの九鬼と申します。 Google Cloud Functions(以後、GCF)でアプリをデプロイするとき、Cloud Build環境でSSHキーにアクセスできません。そのため、GitHubのprivateリポジトリにアクセスできないので、アプリのソースコード上に自…

Google DriveからGoogle Cloud Storageにファイルをコピーする

こんにちは。 ピリカ開発チームの伊藤です。 ピリカではアルバトロスプロジェクトで集めたマイクロプラスチックサンプルを分析する際、各サンプルの画像を撮っています。 このサンプル画像には、右下にスケールが書いてあり、この数字を元に映っているサンプ…