sinmetal
sinmetal
# WHAT Cloud RunにTraffic Splittingの機能がリリースされているが、過去のRevisionを操作した場合、Routingに失敗して動かない。  既存のRevisionに対してTraffic Splittingを実行した場合、適用が終わらず延々と操作中になるか、 `Resource readiness deadline exceeded.` でエラーになる。 # 解決策 新たにDeployを行ったRevisionであれば、動作すると思われる。
App Engine standard for Goで `google.golang.org/appengine/aetest` を利用している時に `panic: unable to find admin server URL` と言われて、後ろのサーバが起動しない時がある ## 調査方法 起動してない原因を探るために、起動時のコマンドを実際に自分のターミナルでも実行してみると分かりやすい。 起動は https://github.com/golang/appengine/blob/de285f9b71d302e953472c27f2152dfe8fac5195/aetest/instance_vm.go#L207 で行われているので、BreakPointで止めて、 appserverArgs の中身を見て、自分のターミナルで実行してるとよい。 試した時は以下のような値が入っていた。 `/var/folders/...` は実行中しか存在しないので、BreakPointで止めたまま、ターミナルで実行してみるのがよい。 ``` /usr/local/bin/python2.7 /Users/sinmetal/bin/google-cloud-sdk/bin/dev_appserver.py --port=0...
# WHAT Stackdriver LoggingのJsonPayloadに大きな数値を出力すると、誤差が出る。 JavaScriptで誤差が出る時と同じ値になるので、どこかでNode.jsとかが処理をしている? ``` gcloud logging write projects/gcpugjp/logs/bignum --log-http --payload-type=json '{"num": 36028797018963966, "text": "36028797018963966"}' ======================= ==== request start ==== uri: https://logging.googleapis.com/v2/entries:write?alt=json method: POST == headers start == Authorization:...
# WHAT App Engine Standard Go 1.9 migration to Go 1.11の知見を集約していく このissueにそのまま書いてもよいし、やった時に書いたBlogなどへのLinkでもよい * 移行時にやったこと * 移行時にはまったことや解決策, ワークアラウンド # WHY App Engine Standardにはたくさんの機能が存在していて、開発環境なども絡むと結構ややこしいので、色んな人のケースを集めてみよう。 # Refs * [App Engine Standard Go 1.9...
# WHAT App Engine Standard 2nd genを利用したアプリケーションのアーキテクチャについて # WHY 1sn genからのマイグレーションは考慮せず、単純に2nd genでアプリケーションを作る場合に考えられるアーキテクチャについて
# WHAT App Engine Standard Go 1.11は1st genとはなったが、gVisorになって色々変わってるので、その辺りをまとめる # WHY https://github.com/gcpug/nouhau/tree/master/app-engine/note/gaego19-migration-gaego111 を Go 1.9のアプリケーションをGo 1.11にするために必要最低限な事柄に絞ったので、Go 1.11にした時にグレードアップしたこととかをまとめる # Refs #100
cloudbuild.yaml のサンプル ``` - name: 'gcr.io/cloud-builders/gcloud' args: ['beta', 'run', 'deploy', '{GROUP}', '--region', 'us-central1', '--image', 'gcr.io/$PROJECT_ID/{ImageName}'] ``` Cloud Buildで動かしているService Accountに必要なRole * Service Account User * Cloud Run Admin
以下の記事でCloud SchedulerからGCPのAPIを直接操作するというのが出ている。 サンプルとしてはCompute EngineのManaged Instance GroupのSizeを変えている。 https://medium.com/google-cloud/automatic-oauth2-using-cloud-scheduler-and-tasks-to-call-google-apis-55f0a8905baf Cloud Spannerでもなんとなくやってみようかなという気持ちになったので、やってみた。 NodeCountの変更は https://cloud.google.com/spanner/docs/reference/rest/v1/projects.instances/patch を利用して行うので、 https://developers.google.com/apis-explorer/#search/spanner.instances.update/m/spanner/v1/spanner.projects.instances.patch?name=projects%252Fhoge%252Finstances%252Ffuga&_h=3&resource=%257B%250A++%2522instance%2522%253A+%250A++%257B%250A++++%2522nodeCount%2522%253A+3%250A++%257D%252C%250A++%2522fieldMask%2522%253A+%2522nodeCount%2522%250A%257D& みたいなリクエストを送ることになる。 Cloud Scheduler用のService Accountを作成し、以下のようなコマンドを実行すればいいはず。 ``` gcloud beta scheduler jobs update http migtest --schedule "5 * * *...
bq queryで [Google Driveのファイルに対して、Queryを実行する](https://cloud.google.com/bigquery/external-data-sources) 時に認証を少し工夫する必要がある。 単純に以下のようにコマンドを実行するとGoogle DriveのScopeが無いと言われる。 単純にgcloud auth loginした場合は、GCPのScopeをFullで取得しているだけなので、G Suite系のScopeを持っていないからだ。 ``` $ bq query --nouse_legacy_sql 'SELECT * FROM `gcpug.google_drive.sheet`' Access Denied: BigQuery BigQuery: No OAuth token with Google Drive...