Canji

クラウド周りをちょこまかしたい注意散漫人間。個人開発を楽しんでいたあの頃。

ActionsをJobで並列化したい

当ブログのリプレイスに伴い、ActionsでちゃんとCIをまわしたいと考えたのですが、どうせなら効率良くしたいということで、Jobで並列化して高速化?したものを備忘録しておきます。

graphql-codegenで変換したtsをさらにトランスパイルする

queryやmutationなどのdocumentsもschema側で記述すると`.ts`に変換する必要があり、さらにスキーマ自体をパッケージ管理していると`.js`にトランスパイル必要があります。それはそう。なので、codegenした後に、tscでコンパイルすることで対応しました。

TypeORMのエンティティをドメインから取り除きたくて

個人プロジェクトでTypeORMのエンティティがドメインモデルと同一扱いになってしまっていて、それに対して違和感を覚えていました。そこでその違和感を言語化して、個人的解法を残しておきます。

SlackApp/APIの整理とメモ

何となく触っていたSlackApp/APIに関して、いまいち理解できいなかった部分をドキュメントを眺めて再整理、私的ポイントをメモしました。

lernaのpackageはsymbolic linkであることに注意したい

はじめに 先日、個人で開発している Lerna でモノレポ構成の子パッケージをデプロイしようとすると以下のように怒られました。 エラー内容から、はありませんと言われたのです。 TL; DR…

typeormのmigrationファイルの置き場所に注意

TypeORMでmigrationを流していると突然 `migration name is wrong.` と怒られました。結論を述べると、migrationファイルが格納されているディレクトリ内に、migrationとは関係のないファイル、正確にはタイムスタンプが追加されていないクラス名が存在すると上記エラーでコケてしまいます

ドメインを変更しました

今まで本サイトで使用したドメインをtolog.siteからtolog.infoに変更しました。理由としては、単純にドメイン更新が高かったことです(汗)

NuxtでMicroCMSの記事をサイトマップに含める

先日、Nuxt と MicroCMS で JamStack な個人ブログを作成したのですが、その際に MicroCMS のコンテンツをどうサイトマップに反映するか悩んだので、個人的解法を残しておきます。

SAMとGitHubActionsでNuxtをSSR構成で構築したい

Serverless Framework (sls) で API Gateway + Lambda で SSR を構築する文献は多いのですが、SAM や CloudFormation に慣れている身としてはどうも sls は取っつきづらくインフラコードが SAM で完結すると嬉しい。ということで SAM で SSR するコードを考えてみた。

SAMでJestを使っていると遭遇するNetworkErrorを解決

SAMでSendGridをコールするAPIを作っているとJestのテスト時にNetworkErrorに遭遇しました。結論、Jestのテスト環境の設定をデフォルトの'jsdom'から'node'に変えることで解決。原因はハッキリと言えないのですが、node環境下でサーバサイドを組んでいるのなら環境を'node'にしてテストするのが当たり前っぽいです

namaeで比較的唯一無二なプロダクト名をあなたに

プロダクト名やサービス名にはどうしても名前被りが考えられますが、その被りを一発で検索提示してくれるのがnamaeというサービです。比較的エンジニア寄りですが、こういう痒いところに手が届くサービスは本当に助かります。

Gatsbyに招かれて、ありがとうWordPress

当ブログをWordPressからGatsby.jsに移行しました。理由は、AWS×WordPressの開発・運用・保守に疲れてしまったことと比較的モダンな静的サイトジェネレーター、Gatsby.jsに触れたかったためです。結論として、ブログも爆速になって懐事情も優しくなり、心理的安全性を確保できたので良かったかなと考えています。

BitwardenのCLIをインストールしてコマンド操作

数多くあるパスワード管理ツールの中でも特にオススメしているのが Bitwardenです。エンジニア的な視点からCLI やセルフホスティングのサポートが何気においしいかなと思われます。npmやbrewで簡単にCLIをインストールでき、各種コマンドで簡単に保管庫からアイテムを引き出せます。そこで今回はこのBitwardenのCLIコマンドを個人利用の観点から簡単に共有させてください。

docker-compose、Composer、Bedrockでモダン開発

Bedrock はモダンな WordPress の開発環境を提供することを目的とし、Composer で簡単にインストールができます。依存関係が composer.json の1つのテキストファイルに集約されるので、Git 等でのバージョン管理もはかどります。また、docker-compose を併用すれば、ある程度モダンな開発環境も整えることができます。

WordPressにて目次機能をJavaScriptで自動生成

QiitaやClassmethodなどのテック系ブログの目次表示をWordPressで実現するためにJavaScriptでシンプルに実装。WordPressだけでなく他のCMS/フレームワークでも扱えるようにするためJavaScriptで実装、またちょっとした工夫としてページ内リンクも追加して実装。

WordPressのコード表示をプラグインなしで自前実装

WordPressのSyntax系プラグインのコード表示が物足りず、HTML/CSS/JavaScriptでの自前実装に切り替えました。今回はHightlight.jsで手軽にsyntax highlightしたり、CSSの 'counter-increment: linenumber;' で行数表示したりして、ある程度満足のいくコード表示が実現できることを確認しました。

AWSCLIv1をPipenvで管理したい

私は下記の観点のもと AWS CLI を Python のバージョン・パッケージ管理と仮想環境を使ってプロジェクト単位でインストールしています。身も蓋もないですが、ローカル環境をあまり汚したくない。Python のパッケージ管理で AWS CLI 自体のバージョン管理が行える。パッケージ + Git 管理下で、新たな端末または他者にも AWS CLI の環境構築が展開しやすくなる。CICDツール や AWS の CodeDeploy を導入している際にどの道必要となる場合がある。

macのphpenvで7.3.17のインストールをオプション周りで何とかした件

phpenvでPHP7.3.17のインストールした際に起きたエラーをdefault_configure_optionsと言うファイルに依存パッケージのパスを追加して解決しました。ただし、libeditに関してはコマンド上でPHP_BUILD_CONFIGURE_OPTSと言うオプションを使ってパスを指定して上げる必要があります。

CognitoのSDKでアドレス変更してもコード未確認状態で使えてしまう問題

CognitoでemailをSDKで変更すると、確認コードが未検証のまま変更アドレスでアクセスができてしまいます。バグっぽくて公式な対応はまだなのですが、GithubのIssueに有志の方が対応策を上げてくれています。対応策はAmplifyベースですが、今回はそれをJavaScriptSDKをベースに実装してみました。

CodePipelineの状態をCodeStar Notificationsで通知

CodePipeline で CI/CD を組んでいると各ステージの進捗状況や結果を CloudWatch と SNS を使って Slack 等に通知されている方もいるかと思いますが、これを CodeStar Notifications と言うサービスの通知機能を使えば簡単に代替することができます。今回は CodeStar Notifications + SNS + Lambda を使って CodePipeline の状態通知を Slack に送信する仕組みを作ってみます。

AWS SAM CLIでSlack通知のLambdaを簡単に開発・デプロイ

Lambda から Slack への通知は昔からこすられてるネタですが、わざわざ AWS SAM CLI を使って検証している方は少ないように思います。そこで今回は Slack 通知の Lambda を AWS SAM CLI で簡単に作成してみようと思います。

[初心者向け] 小さなサーバーをAWSのCloudFormationで構築してみる

近頃、インフラ設定の再利用性と属人性の最小化を目的にインフラのコード化を強く意識し始めたのですが、今回はAWSの Infarastructure as Code(IaC)サービスの1つである CloudFormation を使って、なるべく簡単にAWSの小さなサーバ環境を構築してみます。

パスワードって1つで良いよね with Bitwarden

とり頭の私にとってパスワード管理は悩みの種ですが、Bitwardenを使うことで幾分か頭痛が和らぎます。風邪薬みたいなキャッチになりましたが、効率面においては何よりの療法になります。Bitwarden は多くあるパスワード管理ツールの1つですが、無料にも関わらず(有料プランあり)、その他の有料ツールと変わらないほど高機能で、セキュリティ面も担保できると至れる尽せりのツールになります。

WordPressを使いやすくするためDockerfileをカスタマイズ

個人的な印象になるのですが、WordPress は開発・検証・本番などの各環境ごとに設定が微妙に異なっていくケースが多く見受けられます。そこで、ミドルウェアとアプリケーションをコード管理下における Docker に白羽の矢が立ちます。ミドルウェアの構築や WordPress のシステム設定をコード化することで、各環境でコンテナをビルドするだけでほぼ同一の環境が作れます。