ツー

日常の記録

プログラミング

CloudFront+lambda@edgeでオンデマンドで画像のリサイズしてくれるやつを作る

だいたいはAWSの公式ブログの通り。 上記に書いてなくてハマったことが2点。 bucket policyにGetObjectだけじゃなくてListObjectがないと403が出て混乱する 上記のAWSブログにあるやつを実装してみると404かどうかをチェックしてリサイズの処理を走らせてい…

無限にたまったCloudWatch Logsの空のlogstreamを全部削除する

CloudWatch Logsのログ自体は、保持期間を指定できるのでデータは消えてくれるけど、データの入れ物であるlogstreamだけは空のものが延々と残り続けるので削除する。 コード こういう時はさくっとできるserverless frameworkで。 service: lambda-delete-emp…

SNSとSQSでpub-subな仕組みを構築するための検討

SNSトピックに {"command":"mail.send", param:{"name":"moge"}} みたいなのを投げるとjob queueが動くみたいなのを作りたかったので検討。 SNS -> SQS -> Lambda みたいな構成。 SNSの上限 SQSの上限 システム要件との比較 まとめ SNSの上限 https://docs.a…

reactやwebpackの最新版に追随する

なんかずっとnodejsのモジュールのアップデートしてる気がするな。 nodejsのモジュールアップデート方法 nodejs自体のアップデート typescriptやeslintでどうしても直せないエラー react-router v6 webpackの設定が変わった まとめ nodejsのモジュールアップ…

WSLでpuppeteer

Linux上ではなくWindows上のChromeを呼んだり、バイナリダウンロードしたりと、いろいろ試したけどうまくいかなかったんだけど、以下で試したらあっさり動いたのでメモ。 セットアップのコマンド sudo apt-get install libappindicator1 libappindicator3-1 …

時間ごとに横持ちで集計するSQL

こんな感じで持っているデータを id parent_id created_at 1 101 1234567890 2 102 1234567891 3 101 1234567892 4 101 1234567893 こんな感じで集計するSQL。(想定結果なので集計値は適当) parent_id 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16…

Cognito User Poolのワンタイムパスワードを試してみたができなかった

ここらへんを参考にしてワンタイムパスワードを実装しようとしたができなかったのでメモっておく。 ソースは末尾に。 出力結果 まずは admin-create-user -> admin-set-user-password -> admin-initiate-auth の順で実行。 $ aws cognito-idp admin-initiate…

GitHub Pagesのドメイン設定方法はapexドメインかサブドメインかで異なる

公式ドキュメントに書いてある話だったがわかりにくかったのでメモ。 https://docs.github.com/ja/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site#configuring-an-apex-domain Apexド…

VSCodeの設定

現時点での設定と入れておいたら便利系のまとめ。 設定 "editor.minimap.enabled": false, "editor.letterSpacing": -0.5, "editor.lineHeight": 17, "explorer.openEditors.visible": 0, "window.menuBarVisibility": "toggle", "outline.showVariables": f…

Cloudfrontでキャッシュが全然切れないのはなんでかと思ったら、Reactが提供するPWA用のservice workerのせいだった

結論 create-react-app で作られたアプリで、index.js に書かれている registerServiceWorker() はコメントアウトしておく。 既に呼んでいた場合は unregister() を呼ぶようにする。 経緯 Reactで作られたSPAアプリがあり、s3とCloudFrontで表示している。 …

DockerfileのFROMにlatestを書くな。バージョンを書け。

タイトルの通り。 経緯 GitHubにpush→wercker→CodeDeploy→EC2にデプロイという構成のアプリがある。 werckerではDockerが使えるので、amazonlinuxをベースに開発用のあれこれをいれた自作コンテナを作成して使用していた。 サーバ側であるPerlのdependency i…

WSL内でサーバを起動してもWindowsのブラウザから接続できない。再起動すると直る。

症状 PCについてる電源ボタン(物理)を押して起動するとWindows側からWSL内でのサーバに接続できない。WSL内で wget http://localhost とかは見える 繋げないなと思って再起動するとWSL内でのサーバに接続できるようになる。100%再現する 原因 初回起動時は…

3年前くらいの古いcreate-react-appを最新に追随する

やらなくて済むのならそれがいいけれど、やらなきゃいけなくなってクッソめんどくさかったのでメモ。 Version react & react-dom 15.6.2 -> 17.0.2 react-script 1.1.4 -> 4.0.3 upgrade されていない dependencyでwebpackが競合する とりあえず雑に package…

AWSのEC2上からlegoで証明書が取ってこれない

結論 EC2上からlegoでLet's Encryptを使う場合はUDPの53番を空ける 経緯 ログは適当にデータをマスクしています。 ドキュメント通りに実行してもタイムアウトして動かない。 [ec2-user@ip-172-31-20-114 ~]$ ./lego --server=https://acme-staging-v02.api.l…