自称フルスタックエンジニアのぶろぐ。

pythonやreactや、gcpやawsなどなどについて書いていこうかと思います。

GCP BigQuery 応用編 ~制限について~

入門編はこちら murabo.hatenablog.com 制限 詳細はオフィシャルのこちらを参照してください。 気をつけるものをピックアップして記載します。 標準テーブル 1 日あたりの最大テーブル オペレーション数 - 1,000 1テーブルに対して、読み込みジョブ、コピー…

GCP GKE(k8s) ノードがオートスケールしない or ノードプールが作れない

ノードが一定数からスケールアップしなかったり、ノードプールを作れなかった事態に陥ったので共有します。 下記のコマンドで、プリミティブなノードプールを作りたかった。 $ gcloud container node-pools create [node名] --zone asia-northeast1-a --clus…

GCP GKE(k8s) kubernetes Tips

GKE Tips ノードプールを指定してPodを実行する方法 メニューの [Kubernetes Engine] から [クラスタ] を選択。 下記のようにノードプールが表示されているので、指定するノードプールの名前を確認する。 manifestのDeploymentの場合、 apiVersion: apps/v1b…

python 3.7 リリース内容と注意点

リリース内容 新たな文法機能: PEP 563 、型アノテーションの評価の遅延。 後方非互換な文法の変更: async と await は予約されたキーワードになりました。 新たなライブラリモジュール: contextvars: PEP 567 -- コンテキスト変数 dataclasses: PEP 557 -- …

GCP Google Cloud Memorystore ~実際に動かすまでのみちのり~

Memorystoreを動かすために必要な手順 何も考えずに動かしてみると疎通しない 同一リージョンしか接続できない。 東京リージョンで作成したGAEなどからは接続できません。正式版のリリースを待ちましょう。 今回は、memorystoreに併せて GKE を asia-east1 …

GCP Google DATASTORE ~3日で45万溶かす・・・~

皆さーん、GAE使ってますか? 僕は使ってまーす GAEのFlex使ってます。 理由は、standardはpython2系しか対応してないから 20年に2系のサポート終わるから、そろそろstandardでも3が使えるようになるのかな?なんて期待を持ちつつ、flex 今回初の試みで、DA…

GCP Google Cloud Memorystore

GCPにredisをサービス化したものがベータ版で提供されています。 【注意点】 ・リージョンが限定的(東京リージョンはありません) ・ローカルIPしか指定できない 【ハマりどころ】 ・同一リージョンからしかアクセスできません。 GAEから接続したかったんです…

GCP gcloud dockerコマンドが使えなくなった。

dockerのバージョン18.03までしかサポートしなくなったらしく、 gcloud docker は使えなくなりました。 対応方法。 $ gcloud auth configure-docker を実行します。 メモ docker build -t asia.gcr.io/xxx/yyy . gcloud docker -- push asia.gcr.io/xxx/yyy …

GKE(kubernetes) を超要約すると

GKEとは 複数のインスタンス(GCP)でクラスタリングできる。 Dcokerイメージを使って、Podを作る。 Podの監視/管理をしてくれる。 まずは、これだけのイメージで触ってみると楽だと思う。 Dockerとかコンテナーの初学者や未経験者は、Dockerを1から学ぼうとす…

Google Cloud pubsub でハマった事。

ハマった事 クライアントライブラリからpublishして、messageidsが返却され成功しているのに、 subscriverで、メッセージが確認できない。 原因 同じ名前で、topicを消して、作り直した。 対応 一度消したトピック名は使わない。 murabo.hatenablog.com mura…

django テストコード mock patch

テストコード ✕ mock ✕ patch djangoでテストコード書くときに、APIにアクセスする処理をテストするために、mockでpatchした時のメモ。 def _call_api(self, send_data): """ api呼ぶだけの関数 :param send_data: :return: response """ return requests.po…

Google App Engine(GAE) WEBサービスを作ってみた

Google App Engine と Google Cloud SQL と Google Cloud Storage を使ってツイッター連動するWEBサービスを作ってみました。 まだβ版のステータスです。 上記サイトから、愚痴や不満をつぶやくと、@boooing1がツイッターに匿名で投稿もしてくれます。 ・課…

Google App Engine(GAE) のdeployの話 Part3.1 ~デプロイに失敗しまくる話2~

以前、GAEのデプロイがあるタイミングからエラーループに見舞われると書いたんですが、 murabo.hatenablog.com 全くの勘違いというか、こちらの知識不足でした・・・ djangoで開発していたんですが、settingsのALLOWED_HOSTに、IPやらドメインを指定したこと…

GCP ~Google Cloud Container Builder編~

Google Cloud Container Builder コンテナ イメージをビルドしてくれるサービスです。 やることはシンプルにビルドなので、ノーガードで攻め込んだら、無知すぎて手痛い洗礼を受けました・・・・ (GCPやり始めてこんなんばっかだな・・・) まず、サンプルっ…

redux-formでハマった話。

登録済みのデータをredux-formで編集する機能を作った時にハマった話。 プルダウン、テキストエリア、チェックボックス、チェックボックスに連動したプルダウン (チェックボックスがONの時に表示されるプルダウン) を入力項目として持つ画面に、変更機能を実…

Big Query 入門

Big Queryについて 基本用語 プロジェクト 課金をコントロールし、グローバルな名前空間のルート (BigQuery内のすべてのオブジェクトの名前は、プロジェクトに対する相対的な名前になる) データセット 共有可能なテーブルの倫理的な集合をさす言葉。 データ…

janomeとmecabについて

janomeとmecab pythonで作られたjanomeで、形態素解析を行って見た。 mecab同等の機能だと書かれていたが・・・・ janome エントリーシート エントリー 名詞,サ変接続,*,*,*,*,エントリー,エントリー,エントリー シート 名詞,一般,*,*,*,*,シート,シート,シ…

Google App Engine(GAE) のdeployの話 Part3 ~デプロイに失敗しまくる話~

Google App Engine(GAE) のデプロイに失敗しまくる話 GAEで開発を進めていると、あるタイミングから急にデプロイに時間がかかりだし、ERRORでデプロイできない事業が繰り返される場合がある。 そんな時の対策を記載してみる。 cronを止めてdeploy メモリの使…

Google App Engine(GAE) のdeployの話 Part2 ~cron編~

Google App Engine(GAE) のcronの話 GAEでバッチ処理を行いたい場合は、バッチ処理の代わりにURLを叩いて処理します。 cron用のエンドポイントが必要になるってことですね。 そのエンドポイントをスケジュール登録して、叩いてもらう流れになります。 下記の…

python djangoで画像をmodelのImageFieldに保存する時の話。

画像を保存する場合のお話。 これに困った経緯 画像の保存先をgoogle cloud storageに保存したい。 これってどこでどうすれば保存できるんだ・・・から始まった。 静的保存場所の設定 settingsにgoogle cloud storageの設定を追加 STATIC_URL = 'https://sto…

Google App Engine(GAE) のdeployの話 Part1

Google App Engine(GAE) のdeployの話 GAE とは Google App Engine (GAE) は、Googleの提供するサービスの1つであり、 ウェブアプリケーションをPHP・Python・Java・Go言語を使用して開発し、 Googleのインフラストラクチャー上で実行し、バージョン管理する…

django-cors-headersの設定で軽くハマった話。

django-cors-headers インストール方法 pip install django-cors-headers settingsに下記を追加。 INSTALLED_APPS = [ … 'corsheaders', … ] MIDDLEWARE = [ … 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware', … ] …

pythonで外部APIをコールした結果が、バイナリで帰ってくる時の対応

python3で外部APIをコールした結果が、バイナリで帰ってくる時の対応 import ast import json, requests token_url = 'https://xxxxxxxxx/api-token-auth/' result = requests.post(token_url, data={ 'username': 'xxxxx', 'password': 'xxxxx' }) token = …

adsenseの経過報告

アドセンスの導入がばらつきがあるが、前回の記事からの変化をみていただければと思います。 期間:2016−01−01~2016-03-21 期間:2016−03−01~2016-03-21 緩やかだが、成長してきてるかな・・? 期間:2016−03−01~2016-03-21 期間:2014−09−16~2016-03-21(全期間)…

pythonとdjangoとアフリエイト

Pythonでアフリエイト // 1年ほど前から、pythonとdjangoで、犬用の商品検索サービスとしてdoggy shopを運営してます。 しかし、作ったものの、ほとんど放置してました。 実は、facebookページや、twitter、後はクローラーに認知されれば少しづつお客がくる…