Flask+Service Worker on Heroku で PWA チュートリアル
概要
自分にとっては dev.to でバズった Service Worker。
その概要と機能性をなぞってみようとチュートリアル的に学んだ内容をまとめました。
掲題の通り、Flask + Service Worker を Heroku で動作させ、PWA(Progressive Web Apps) してみました。
自分にとっては dev.to でバズった Service Worker。
その概要と機能性をなぞってみようとチュートリアル的に学んだ内容をまとめました。
掲題の通り、Flask + Service Worker を Heroku で動作させ、PWA(Progressive Web Apps) してみました。
ラズパイ使って家族と判断したら
「こんにちはご主人様」
家族以外なら
「通報しまーす」
と話してくれるおもちゃを
作ろうと思ってます。
その前段の前段として
静止画で顔検出してみます。
ちなみに顔検出と顔認識は意味が全く異なります。
環境構築は前回記事を参照してください。
1 | brew tap homebrew/science |
1 | $ source ~/py3env/bin/active |
1 | (py3env)$ cd ~/py3env/lib/python3.4/site-packages |
Version が表示されれば成功
1 | (py3env)$ python -c 'import cv2; print(cv2.__version__)' |
1 | (py3env)$ cd ~/py3env |
1 | (py3env)$ python trimming.py <img_path> |
Before
After
革パンも顔認識されてしまう…
が、一応まずできました。
1 | facerect = cascade.detectMultiScale(image_gray, scaleFactor=1.02, minNeighbors=3, minSize=(7,7)) |
Item | Value |
---|---|
scaleFactor | 画像解析する際に随時縮小し解析するその尺度 |
minNeighbors | 最小近傍矩形数 |
minSize | 顔部分を認識するためのサイズ (縦,横) |
まず最初の第一歩ができました♪
サーバ時刻の監視を Datadog で実施する際、標準時刻の参照先が異なることで
不要なアラートが発生する事象がありました。
Datadog はデフォルトで pool.ntp.org
を参照しています。
AWS EC2 に設定した Chrony ではデフォルトで ntp.nict.jp
を参照する様にしていた為、ある日突然アラートがなりまくる事象がありました。
この対策として、
Datadog と Chrony の参照先を統一して管理する様に設定しました。
メディアサイトで記事ページへアクセス数ランキングを実装しました。
その際にマルチスレッド環境を考慮してスレッドセーフな実装を心がけました。
完全な備忘録です。
6月に入って数日、
ecs-cli の latest をインストールすると latest が 1.6.0 となりecs-cli compose ...
を実行すると以下のようなエラーが出るようになりました。
1 | level=error msg="Unable to open ECS Compose Project" error="Volume driver is not supported" |
1.4.0 では問題なかったタスク定義でしたが
1.6.0 では Volume driver is not supported
となったそうで処理がこけるようになりました。
その対応として 1.4.0 にバージョン固定した設定です。
AWS Vault は IAM の認証情報 (Access Key Id, Secret Access Key) を安全に OS のキーストアに保存しアクセスできる仕組みを提供するツールです。
Vault = 金庫 というだけあって
PC 落としても秘匿情報が漏れにくい仕組みにしてくれます。
AWS Vault で複数アカウントのコンソールログインを簡単にしたいと思います。
前回 ECR への Docker イメージをプッシュする際の認証コマンドを実行せずにプッシュできる様にしました。
ECR にログイン(aws ecr get-login)無しでプッシュする
ですが、
設定が手間というのがあり、CircleCI, AWS CodeBuild 等でワンライナーでささっと書きたいときには不便です。
awscli profile
で設定した profile を利用し ecs-cli を利用することで認証をよろしくやってくれます。
1 | ecs-cli push <image> --aws-profile <profile> --region <region> |
1 | aws configure set --profile hogehoge aws_access_key_id $ACCESS_KEY_ID |
1 | ecs-cli push 123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/stg-mogemoge-rails:latest \ |
以上で aws ecr get-login
を使用せず、ECR へプッシュができる様になりました♪