emahiro/b.log

Drastically Repeat Yourself !!!!

GCP

Cloud Functions で ImageMagick 使って OGP 画像を生成・表示する

Overview 自前で OGP を生成する 何を使って画像を生成するか Next.js で用意されてる OGP 向けの機能を利用する Puppeteer を利用してキャプチャする ImageMagick を利用する 準備 ImageMagick での実装 補足 生成した画像の保存先 ビルド時に CloudFunctio…

GitHub Actions で CloudRun にデプロイする

Overview 準備 Cloud Run のデプロイ方法 環境変数を追加する 権限について 権限付与手順 サービスアカウントの作成と借用権限の設定 権限の追加 GitHub Actions の設定ファイル source からデプロイする場合 Docker Image からデプロイする場合 See Also Ov…

Firestore が絡んだテストで事前にデータを生成し終わったら削除する

Overview テストを書くときにテストの実行前にデータを作成し、終わったら削除したくなる時がありますね?僕はあります。 Firestore が絡んだテストを書くときに Firestore Emulator を起動した状態で実際にデータを作成して、終わったら削除する場合の実装…

python のバージョン起因で gcloud コマンドの実行に失敗する

GCP

Overview タイトルの通りです。 gcloud components update したら python のバージョン違いで gcloud コマンドが動かなくなったのでその解決方法について記載します。 エラーの内容 Traceback (most recent call last): File "/Users/$UserName/google-cloud…

Deno on Cloud Run

Overview How to get started Install Deno Sample web server VSCode plugin Node Modules Working on docker Build & Run Deploy to Cloud Run Regionの指定 Setting Cloud Build Deploy コンテナを Cloud Registry に登録 Deploy to Cloud Run その他 pri…

GCP のセットアップを行う

GCP

サマリ Set up for Google Cloud SDK 予算のアラートを設定する その他 サマリ 仕事では AWS をメインで使ってるのもあって、GCP を最近全然いじらなくなっていたのですが、久しぶりにいじるかと思い立ったので、 GCP の環境を1からセットアップします。 Set…

CLOUD SDK で python2 系が切られて aetest が落ちるようになった問題

Overview Update to Pyhon3 にて Goole Cloud SDKを同梱した Docker Image 本体にて Python2 のサポートが切られたために、Python2 系でのみ動作する App Engine を起動するコマンドの dev_appserver.py が動作せず、本家の Google Cloud SDK - Dockerfile …

Cloud Run を使う

別に目新しいこともないですが、Cloud Run の走りだけ使ってみたので雑な備忘録。 Docker image を用意して gcr に上げる 起動したい Docker image を作成して gcr.io に上げておきます。 Cloud Run を起動するときは gcr.io 上に上がっている image のみ選…

GCSのObjectをCopyするときの挙動について調べたこと

業務でGoogle Cloud Strage にObjectをコピーするときの挙動について調べたのでまとめておきます。 GCSでのコピーは cloud.google.com/go/storage 配下にある copy.go に処理の中身が書いてあります。 github.com 実際にGCSでコピーをするときには以下のよう…

GCPの認証設定が切れた時の対処法

GCP

いつからかわかりませんが、localのコンソールからGCPの各サービスのAPIを叩くときに以下のエラーが出てAPIが叩けないと言うことがありました。 err: dialing: google: could not find default credentials. See https://developers.google.com/accounts/doc…

AppEngineで静的ファイルをサーブする設定について

ふとした拍子に忘れてしまうappengineでの静的ファイルをサーブする設定についてのメモです。 内容はほぼ Serving Static Content | App Engine standard environment for Go | Google Cloud に載ってる内容です。 例えば以下のようなディレクトリ構成を考え…

AppEngineについて考えてること

AppEngine大好きっ子で1年近くAppEngineをPaaSに採用した環境で開発を行ってきた人間としてちょっと考えたことをつらつら書いてみます。 ※1 このエントリは今日(2018/09/21)同僚の人と色々話してた内容をベースにしてます。 ※2 あくまで個人の感想、というか…

goでのhttpの書き方あれこれ

goの標準 goでhttpの処理を書きたいときはnet/httpパッケージを使う。 強力なパッケージなので、基本これを使うで、やりたいことの殆どはまかなえてしまうと思う http.Get(url) package main import ( "fmt" "io/ioutil" "net/http" ) func main() { resp, e…

GoonのGet()とGetAll()の違いでハマる

Go+GAEの環境でCloudDataStoreからデータを取得するときに Get() GetMulti() GetAll() の挙動の違いでハマったので備忘録として挙動をまとめておきます。 Datasotreのライブラリ datastore https://godoc.org/google.golang.org/appengine/datastore googlea…

appengineのmemcacheを使う

GAEではmemcache一択 appengineのmemcacheパッケージを使ってみました。 リファレンスはこちら https://cloud.google.com/appengine/docs/standard/go/memcache/reference goでキャッシュを扱うときに最初 go-cache を使おうと思っていたのだけれど、GAEでキ…

GQLでプライマリーキーのwhere句指定を行う

GoogleCloudStrageでkey(RDBでいうところのprimarykey)をフックにしてentityをselectしようと思ったらちょっとハマったのでそのメモ 最初に書いたクエリ SELECT * FROM KIND_NAME where ID = 123 この形式ではentityを取得できない。 正しいクエリ SELECT * …