CLOVER🍀

That was when it all began.

Node.js

Serverless Framework+LocalStackで、Amazon SNSのトピックをサブスクライブするAWS Lambda関数を作る

これは、なにをしたくて書いたもの? 今まで試してきたServerless Frameworkを使った例では、ずっとAmazon API Gatewayを使ったものだったのですが、別のものでも試して みようかなと思いまして。 今回は、Amazon SNSを使ってみたいと思います。 Amazon SNS …

Serverless Esbuildを使って、TypeScriptのServerless Frameworkサービスを作る

これは、なにをしたくて書いたもの? 前に、Serverless FrameworkをTypeScript(とLocalStack)で使ってみました。 Serverless FrameworkをLocalStack+TypeScriptで使ってみる(Amazon API Gateway+AWS Lambda) - CLOVER この時、テンプレートにaws-nodej…

JavaScriptのArray.prototype.forEachにasyncな関数を渡しても、awaitで終了を待てないという話

これは、なにをしたくて書いたもの? Array.prototype.forEachをなにも考えずに使っていて、ちょっとハマったので。 Array.prototype.forEachはawaitと組み合わせて使えないようです。 Array.prototype.forEachとasync/await MDNリファレンスでのArray.prot…

npmでプロジェクトの依存関係の確認や、依存パッケージのバージョン確認などを行ってみる

これは、なにをしたくて書いたもの? 以前、npm install(npm i)で使うバージョンについて調べてみました。 npm installなどで使うバージョンがよくわからなかったので、調べてみました - CLOVER なのですが。npmプロジェクトが依存しているパッケージを表…

Amazon EventBridgeでスケジューリング起動するAWS Lambda関数を、AWS SAM+LocalStackで試す

これは、なにをしたくて書いたもの? Amazon EventBridgeを使って、AWS Lambda関数をスケジュール実行させてみたいなということで。 LocalStackでAmazon EventBridgeを使えそうだったので、試してみることにしました。 Amazon EventBridge Amazon EventBridg…

aws-ses-v2-localを使って、Amazon SES API v2をローカルで試す

これは、なにをしたくて書いたもの? Amazon SESをローカルで動作確認できるような代替ツールはないのかな?と思って調べてみたのですが。 LocalStackはAmazon SES v1は使えますが、v2はProでないと利用できないようです。 LocalStack Coverage / ses LocalS…

Node.jsでMySQL 8.0のデフォルトの認証方式(caching_sha2_password)に対応するには、mysql2を使う

これは、なにをしたくて書いたもの? MySQL 8.0になって、デフォルトの認証方式がcaching_sha2_passwordからmysql_native_passwordに変更されました。 For the server, the default value of the default_authentication_plugin system variable changes fro…

Serverless FrameworkをLocalStack+TypeScriptで使ってみる(Amazon API Gateway+AWS Lambda)

これは、なにをしたくて書いたもの? Serverless FrameworkでTypeScriptなAWS Lambdaアプリケーションがどういう感じなのか見てみたいというのと、それをLocalStackに デプロイしてみたい、ということでちょっと試してみることにしました。 今回は、Serverle…

TestcontainersをNode.js(TypeScript)で試す

これは、なにをしたくて書いたもの? JUnitを使ったテストでコンテナの利用をサポートする、Testcontainersというライブラリがあります。 Testcontainers こう書くとJava向けのライブラリのようなのですが、他の言語でも扱えるようなので試してみることにし…

AWS SAMのTypeScriptサポート(プレビュー)をLocalStackで試す

これは、なにをしたくて書いたもの? 自分はAWS SAMでTyepScriptを使う時はほぼ自前で設定を書いているのですが、今年の2月に出ていたAWS SAMのTypeScriptサポートを 1度試しておこうかなと思い始めたので、やってみようかなと。 AWS Serverless Application…

npxコマンドを使って、未インストールのコマンドを使った時の挙動を確認する

これは、なにをしたくて書いたもの? 今まで、npxコマンドはローカルインストールされたnode_modules内の実行ファイルにパスを通して実行してくれるものだと思って いたのですが、どうやら異なるようなのでちょっと確認しておきたいなと思いまして。 npxコマ…

AWS SAM(Node.js)でAWS Lambda関数をパッケージングする時に、package-lock.jsonを見るようになっていたという話

これは、なにをしたくて書いたもの? AWS Lambda関数を書く時にAWS SAMをよく使っているのですが、Node.jsを使ってsam buildした時に.aws-samディレクトリに package-lock.jsonをコピーせずにnpm installしてしまうイメージがありました。 実際に前はそうだ…

AWS SAM+LocalStackで、Amazon SQSキューからメッセージを受け取るAWS Lambda関数をTypeScriptで書いてみる

これは、なにをしたくて書いたもの? 先日、AWS SAM+LocalStackを使ってAmazon SNSの通知を受け取るAWS Lambda関数を書きました。 AWS SAM+LocalStackで、Amazon SNSの通知を受け取るAWS Lambda関数をTypeScriptで書いてみる - CLOVER 今度は、Amazon SQS…

AWS SAM+LocalStackで、Amazon SNSの通知を受け取るAWS Lambda関数をTypeScriptで書いてみる

これは、なにをしたくて書いたもの? AWS SAM+LocalStackを使って、Amazon SNSの通知を受け取るAWS Lambda関数を書いてみようかなと。 AWS Lambda関数は、Node.js+TypeScriptで作成します。 Amazon SNSのトピックからの通知をAmazon Lambda関数で受け取る …

LocalStackにデプロイしたAWS Lambda関数(Node.js)をGoogle Chrome DevToolsでデバッグする

これは、なにをしたくて書いたもの? LocalStackのドキュメントを見ていて、AWS Lambdaのリモートデバッグについて記載があるのに気づきまして。 Remote Debugging | Docs このドキュメントに書かれているのはPythonとJavaなのですが、読んでいてNode.jsでも…

Node.jsのコマンドラインオプションをNODE_OPTIONS環境変数で指定する

これは、なにをしたくて書いたもの? Node.jsのコマンドラインオプションを環境変数で指定できないのかな?と思って調べてみたのですが、NODE_OPTIONS環境変数が これに該当しそうなので、試してみます。 NODE_OPTIONS環境変数 NODE_OPTIONS環境変数は、こち…

Node.jsのサーバーサイドフレームワーク、NestJSを試す

これは、なにをしたくて書いたもの? Node.jsのサーバーサイドフレームワークといえば、ExpressやFastifyあたりが有名なのかなと思っていたのですが。 Express - Node.js web application framework Fastify, Fast and low overhead web framework, for Node…

Node.js × TypeScriptのORM、TypeORMをMySQLで試す

これは、なにをしたくて書いたもの? Node.js+TypeScriptのORMは、このあたりが有名みたいです。 Sequelize | Sequelize ORM v5以降、TypeScriptをサポート TypeORM - Amazing ORM for TypeScript and JavaScript (ES7, ES6, ES5). Supports MySQL, Postgre…

Amazon DynamoDBのローカル版(DynamoDB Local )とDocumentClientで、セカンダリインデックスを試す

これは、なにをしたくて書いたもの? 最近、Amazon DynamoDBで遊んでいましたが、今回で一区切りにしようかなと思います。 もしかしたら、DynamoDB Streamsあたりは試したくなるかもしれませんが。 今回は、セカンダリインデックスをテーマにします。 セカン…

Amazon DynamoDBローカル版(DynamoDB Local )とDocumentClientで、トランザクションを試す

これは、なにをしたくて書いたもの? 今回は、Amazon DynamoDBのトランザクションを試してみようかなと思います。 DynamoDB トランザクションで複雑なワークフローを管理する - Amazon DynamoDB Amazon DynamoDBのトランザクション Amazon DynamoDBにはトラ…

Amazon DynamoDBローカル版(DynamoDB Local )とDocumentClientで、スキャンを試す

これは、なにをしたくて書いたもの? 前にAmazon DynamoDBのクエリーを試してみました。 Amazon DynamoDBローカル版(DynamoDB Local )とDocumentClientで、クエリーを試す - CLOVER 今回は、スキャンを試してみようかなと思います。 Amazon DynamoDBのスキ…

Amazon DynamoDBローカル版(DynamoDB Local )とDocumentClientで、クエリーを試す

これは、なにをしたくて書いたもの? 前に、Amazon DynamoDBのローカル版(DynamoDB Local )を試してみました。 Amazon DynamoDBのローカル版を試してみる - CLOVER Amazon DynamoDBを使った操作を少しずつ見ていこうと思います。 今回は、クエリーをテーマ…

Amazon DynamoDBのローカル版(DynamoDB Local )を試してみる

これは、なにをしたくて書いたもの? Amazon DynamoDBは使ったことがないのですが、ローカルで動かせるバージョンがあるようなので、試しておきたいなということで。 Amazon DynamoDB とは - Amazon DynamoDB Amazon DynamoDB そもそも、Amazon DynamoDBを知…

Emacs lsp-mode+TypeScript Language Serverで、挙動が微妙な時はLanguage Serverをインストールし直す

TypeScriptを書く時は、Emacs lsp-mode+TypeScript Language Serverを使っているのですが。 JavaScriptでTypeScript Language Serverを使って、Emacs lsp-mode - CLOVER 使用しているLanguage Serverは、こちらです。 JavaScript/TypeScript (theia-ide) - …

Node.js × TypeScriptのORM、PrismaをMySQLで試す

これは、なにをしたくて書いたもの? Node.js+TypeScript環境でのORMはどれを使ったらいいのかな?ということで。 このあたりみたいです。 Sequelize | Sequelize ORM v5以降、TypeScriptをサポート TypeORM - Amazing ORM for TypeScript and JavaScript (…

tsconfig.jsonをextendsして、設定内容をオーバーライドする

これは、なにをしたくて書いたもの? tsconfig.jsonは、extendsで拡張(というかオーバーライド)できるらしく。 ちょっとやりたいことがあったので、試してみました。 tsconfig.jsonのextends tsconfig.jsonは、extendsで拡張することができます。 What is …

Jest+TypeScriptを高速に実行したい(ts-jest、esbuild、SWCを比べる)

これは、なにをしたくて書いたもの? 最近、TypeScriptを使っているわけですが、テストコードを書くとJestを使います。 Jestのドキュメントに習うとTypeScript+Jestではts-jestを使ってテストを実行することになるのですが、これが遅いのでどうにかならない…

AWS Lambda向けのミドルウェアエンジンmiddyを試す(Amazon API Gateway、LocalStack)

これは、なにをしたくて書いたもの? AWS Lambda関数(Node.js)向けの、middyというライブラリの存在を知ったので、ちょっと試してみることにしました。 middy ライブラリと書きましたが、middyは「AWS Lambda関数を簡単に書くためのミドルウェアエンジンだ…

Dockerコンテナ内で、PM2を使ってアプリケーションを起動する

これは、なにをしたくて書いたもの? 前に、PM2を使ってNode.jsアプリケーションのクラスター化をしてみました。 PM2を使って、Node.jsアプリケーションをクラスター化(CPUスケーリング)させてみる - CLOVER 今度は、Dockerコンテナ内でPM2を使い、アプリ…

Dockerコンテナ内で動作するNode.jsが認識するCPU数、メモリサイズ(ヒープサイズ除く)は、ホスト側のものになるという話

これは、なにをしたくて書いたもの? Dockerコンテナ内で動作するNode.jsが認識するCPU数は、ホスト側のものになってしまうようなので、これを メモしておこうかなと。 メモリについても同様のようですが、ヒープに限ってはコンテナ側の値を見てくれるようで…