Ponz Dev Log

ゆるくてマイペースな開発日記

備忘録

AWS CDKで意図しないIAMポリシーの上書きを防いで循環参照を回避した

AWS CDKでIAMロール/ポリシーを宣言するスタックとワークロード+CloudWatchロググループを宣言するスタックを分けて後者から前者を参照した時、意図せず循環参照が発生してハマってしまったので解決のメモ書きです。 試した環境 バージョン ... Node.js 14.1…

ずっと避けて通っていたNode.jsのStreamに助けられた話

自分は業務・個人開発ともに普段はNode.jsでアプリ開発することが多いのですが、 今回は1プロセスのバッチでは到底処理しきれない量のデータを Node.js Stream で何とか乗り切った話です。 乗り切るまでの過程も忘れないように覚え書きします。 数十MB ~ GB…

技術書典7 参加レポート ~アウトプットは出す方も見る方も楽しい~

9/22開催の技術書典7に出展者として参加してきました。今回はサークル参加者として、また1人のイベント参加者としての振り返り記事です。 実は技術書典には初参加でもあります。ツイッターで盛り上がっているのを見て、これは自分もやってみていいんじゃない…

ブラウザからREST APIでAmazon S3にファイルをアップロードするときに気をつけること

書籍『AWSによるサーバーレスアーキテクチャ』(翔泳社)を読み進めているときにS3のファイルアップロード関連でつまづいたところが多々あったので、気をつけるべきところとして手順と一緒にまとめます。 AWSに関わる動的な処理を全てJavaScriptで実装すること…

GCP Professional Data Engineer認定取得しました

GCP Professional Data Engineer認定試験に合格してきました! 認定取得にあたり、取得するまでのポイントや試験のことを書いておきます。 cloud.google.com 事前に準備したこと Coursera - 各サービスのコンセプトやらユースケースを細かく詳しくレクチャー…

GCP BigQueryチュートリアルお触りメモ

GCPのData Engineer認定試験に向けて、データウェアハウスに分類されるBigQueryのチュートリアルを一周したのとドキュメントを読み漁った時のメモです。最近メモ続きで今回はコードは一行も出てきませんが、試験直前に見直すために書き残します。そろそろパ…

JavaScriptの2次元配列の展開・重複削除・集約をLodashを簡潔に書く

2018年末に書いたSlack Botを少しリファクタリングした時の話。2次元配列と配列要素の重複削除ってよく使いそうで意外とベストなやり方ってよく分からないですよね。自分の場合は2次元配列は map と foreach、重複削除は Set オブジェクトで実装していました…

JavaScriptのクロージャって結局なんだよ

JavaScriptでは初歩的なコードでは現れないけれどふとした拍子に出てくる単語っていくつかいるような気がします。 特にカリー化、高階関数、クロージャ、ファンクターあたり。関数型プログラミングを進めていたら最初の方に出てきて戸惑ったのが クロージャ …

2018年振り返りと2019年の抱負

今年の年末エントリーです。 2018年は部署異動があったおかげで、仕事環境も私生活もガラッと変わった1年でした。 心のゆとりができたこともあってジムに通い始めたり技術書読んだりと社会人1〜2年目の時にはできなかったことにも手を出せて初めて社会人楽し…

AWS認定 デベロッパーアソシエイトに合格してきました

TL; DR 遅ればせながら、9月末にAWS認定 デベロッパーアソシエイト試験(2018/6リリース)に合格しました! AWS 認定デベロッパー – アソシエイト 認定取るためにとにかくサービスを弄り舐め回しましたし、普段は触らないであろうサービスに色々触るいい機会に…

AWSの各サービスを舐める (3) - Amazon S3

AWSのサービス舐めるシリーズその3。今回はS3です。 Kubernetesの検証の時にお世話になったので、今回はちょっとしたメモ程度で。 以前どんなことに使ったかは過去記事をご参照ください。 特徴と制約 レコードを格納するようなDBではなく、ファイル(CSV, JS…

AWS Lambda with Node.js を叩いてKubernetesにアプリをデプロイしてみる

Kubernetesへのアプリのデプロイ方法を検討したことがあったのでちょっとまとめてみる。 AWS CodePipelineからKubernetesにビルドしたDockerイメージをデプロイするときは、Lambdaでやるパターンがあるみたいですね。 aws.amazon.com また、ECSだとCodeDeplo…

Amazon EKSがGAになったので触った所感

AWSでKubernetesのマネージドサービス Amazon EKS がGAになりました。 今まではAWSでk8sをいじるときはkops経由でクラスターを作って、権限設定してと手間がかかっていましたが、EKSはどれくらい楽になるのかなという観点で触ってみました。 www.atmarkit.co…

npm v6が自動的に脆弱性を見つけるようになった

Node 10.0と合わせて自分のMacのnpmもv6にバージョンアップさせました。 色々いじってた時に脆弱性を教えてくれるようになったので、メモとして残します。 例えばnpm install でnodemonを入れると、以下のように脆弱性があるよと警告を親切に出してくれます…

MongoDBでのmongoとmongod以外のクライアントプログラム

DBって基本のクライアントプログラム以外にも、クライアントプログラムが入ってるって最近気づきました。 NoSQLのMongoDBも同じようなクライアントプログラムがないか確認しました。MySQLも同様にたくさんあるようですね。 今回はMongoDBのクライアントプロ…

ES6からのトランスパイルするときのBabel 7 対応

タイトル通り、Babelの話。 JavaScript書いていると、避けて通れないのがES6からのトランスパイル。 このとき使うデファクト・スタンダードになったBabelで最近つまづいたのでメモです。 ことの発端 MochaでES6のコードを実行させるために babel-core, babel…

Mongooseの処理が非同期であるのを忘れてはいけない(戒め)

Node.jsのMongoDBのORMといえば、Mongoose。APIドキュメントをよく読んで使用されている方ならお分かりかと思いますが、よく使う.save(ドキュメント保存)や.find (ドキュメント検索)といった処理は非同期で実行されます。 これ、意識してないと処理はあって…

sedとawkでテキスト処理を楽にした話

社内の勉強会で シェルの勉強という題目でsedとawkを学んだので、備忘録。 sed 受け取った入力をフィルタリングして返す。特に置換・マッチングが得意。 Vimの文字列置換方法は知ってたけど、ツールとしてのsedは同じような記法でいける。 基本的な使い方 $ …