2023年振り返り
2023年を振り返る。
目次
仕事
2023年4月までの過ごし方 - なんでもノートにも書いたが、リーダーからメンバーに戻った。
今年はJava・Spring BootでMQコンシューマーやバッチを書いたり、Apache Solrをちょっとだけ触ったり、Kubernetesをちょっとだけ触ったりした。
ゲーム
今年は沢山ゲームをした年だった。どのゲームも夜更かしするぐらい面白かった。
- スーパーダンガンロンパ2 さよなら絶望学園
- ニューダンガンロンパV3 みんなのコロシアイ新学期
- ゼルダの伝説 ティアーズ オブ ザ キングダム
- 超探偵事件簿 レインコード
- バディミッション BOND
- 十三機兵防衛圏
- ホグワーツ・レガシー Hogwarts Legacy(プレイ中)
映画
今年は38本の映画を観た。三鷹の森ジブリ美術館に行くために観たジブリ作品13本とハリー・ポッターシリーズが半分以上を占めている。
THE FIRST SLAM DUNKとRRRが面白かった。
買ったもの
- 本棚用ラック
- DVDプレイヤー
- M2 MacBook Air
- iPhone 15
- Echo Dot with clock
ジブリ作品をレンタルDVDで観るためにDVDプレイヤーを買った。MacとiPhoneを新調した。
行った場所
ゴールデンウィーク 2023 - なんでもノートにも書いたが、ゴールデンウィークに伊勢を旅行した。
ジブリ作品を観てから三鷹の森ジブリ美術館に行った。絵コンテすごかった。
8月に小樽を旅行した。
11月に6年半ぶりにディズニーランドに行った。アプリのQRコードで入場したり、ファストパスがなくなっていたり、新しいアトラクションができていたりしていろいろ変わっていたが、夢の国は楽しかった。
2024年に向けて
来年も充実した1年を送りたい。
ゴールデンウィーク 2023
今年の自分のゴールデンウィークは4/28〜5/7の10連休だった。会社の祝日振替休日 + 有給休暇を2日取得した。散歩、伊勢旅行、このすば、ジブリ映画という感じだった(他にもしたけれど)。
散歩
船橋と西船橋、本八幡、市川の駅周辺を散歩した。船橋・西船橋間、西船橋・本八幡間は電車で移動し、本八幡・市川間は歩いた。ここ数年、行ける距離なのに行ったことがない街があるのは勿体無いと思い散歩をしている。船橋も行ったことないと思っていたが、駅から出てみたら中学生の頃に来たことがあるのを思い出し感慨深くなった。どこも住みやすそうな街だった。
伊勢旅行
伊勢に1泊2日で旅行した。1日目は伊勢神宮の外宮と内宮にお参りし、おかげ横丁に行った。神宮の公式サイトの神宮についてやはじめての神宮を読んでから行った。勉強になったしサイトで見た宮だ!となって面白かった。次、他の神社にお参りするときも知識をつけてからお参りしようと思った。2日目は夫婦岩にお参りし、松阪牛のステーキを食べ、鳥羽水族館に行った。ラッコやアザラシなど可愛い動物が沢山いて、スナドリネコがとてもカッコよかった。
このすば
今、この素晴らしい世界に爆焔を!のアニメが放送されている。自分はdアニメストアで観ている。アニメを観て、このすばをもっと見たくなったのでラノベのKindle版を買って読んだ。8巻から17巻(本編最終巻)まで読んだ。面白かったの一言に尽きる。
ジブリ映画
ラピュタともののけ姫を見た。どちらも今まで観たことがなかった。金曜ロードショーがお風呂の時間に被っていたのと流体が苦手でジブリ映画は観てこなかった。重い腰を上げてGEOの会員登録をしてゴールデンウィーク最終日に滑り込みで観た。どちらも面白かった。ラピュタはTwitterでしか見たことなかったバルスを聴けてよかった。アシタカかっこいい。やはりタタリ神の流体が苦手だった。次はナウシカと千と千尋の神隠しを見る予定。
2023年4月までの過ごし方
Romeを使ってみたからしばらくブログを書いていなかった。もう少し頻度高く書けるようにしたい。
比較的大きな変化や出来事はなかったので過ごし方というタイトルにした。
- 色々な技術のドキュメントを読んだり、触ったりした
- 技術書を読んでいた
- 仕事でリーダーからメンバーに戻った
- 会社の同期の結婚式と会社の同期の結婚式の二次会に出席した
名前は聞いたことあるけど何なのか知らないフロントエンドのツールが多かったのでドキュメントを読んだり、触ったりしていた。具体的には以下。
- Vite
- Vitest
- esbuild
- SWC
- Parcel
- pnpm
- MSW
- Puppeteer
- Playwright
また、GoとRustでLeetCodeを解いたり、簡単なコードを書いたりもしていた。
技術書は以下を読んだ。
- Team Topologies
- 実践Node.js入門
- フロントエンド開発のためのセキュリティ入門
- プロダクトマネジメントのすべて
- ソフトウェアアーキテクチャの基礎
- プログラマー脳
- 情熱プログラマー(2回目)
- 入門モダンLinux
読み終えたが、読み終えることを意識しすぎて内容が頭に定着していない感が否めないので、最近反省している。
仕事ではリーダーからメンバーに戻った。1年間と短い期間だったがとても勉強になり、貴重な経験をさせてもらえたことに感謝しかない。一方でまだまだ手を動かして開発したい、技術力を高めたいという気持ちが強くあることに気づき、メンバーに戻ることにした。
2人の会社の同期の結婚式と結婚式の二次会に招待していただき、出席した。友人の結婚式に出席するのは初めてだったので持ち物や服装などソワソワした。どちらも楽しく素敵な結婚式、二次会だった。
その他、友人とご飯を食べたり、散歩したりもした。こんな感じに過ごしていた。
Romeを使ってみた
Rome という開発ツールを使ってみた。RomeはRome1つでフォーマットやlintなどができる統合開発ツールを目指していて、2023年1月現在はフォーマッターとLinterがリリースされている。そのフォーマッターとLinterを使ってみた。最近開発しているChrome拡張にPrettierとESLintを入れてなかったので代わりにRomeを導入してみた。
やったこと
- Romeのインストール
- Romeの設定
pnpm rome init
+ インデントスタイルの変更
- VSCodeの拡張機能の設定
- ワークスペース設定の対応言語のみデフォルトフォーマッターをRomeにした
- npm scriptの設定
感想
2022年振り返り
2022年も振り返る。2022年7月末までのトピックの内容を含んだ振り返りになる。
- 仕事
- リーダーになった
- 10月に部署異動があった
- Java、Spring Bootを書くようになった
- プライベート
- 買ったもの
- ベッド
- エルゴヒューマン
- ソファ
- リビングテーブル
- 友人から電動昇降デスクをもらった
- 旅行
- 山梨
- 大曲の花火大会
- 浜松
- 技術書を電子書籍から紙書籍に戻した
- 買ったもの
去年の今頃と比べて部屋の環境が大きく変わった。暮らしやすく仕事しやすくなった(はず)。
今年は旅行に行けたのも良かった。
技術書を紙書籍で買うようにしてからインプットが増えた。その代わりアウトプットが少なくなってしまったので来年はバランスに気をつけたい。
来年も充実した1年を送りたい。
GitHub ActionsからGitHubへpushできないエラー
GitHub Actionsで以下のエラーが出た。
Push the commit or tag /usr/bin/git push origin master remote: Permission to azujuuuuuun/azujuuuuuun.github.io.git denied to github-actions[bot]. fatal: unable to access 'https://github.com/azujuuuuuun/azujuuuuuun.github.io.git/': The requested URL returned error: 403 Error: Action failed with "The process '/usr/bin/git' failed with exit code 128"
権限がなくGitHub Actionsからpushが拒否されたよう。直前のPRで権限を変更したので心当たりがあった。
permissions: contents: "read" id-token: "write"
このpermissionsはgoogle-github-actions/authを元に設定した。Assigning permissions to jobs - GitHub Docsによると
これらのスコープのいずれかのアクセスを指定した場合、指定されたなかったものはすべてnoneに設定されます。
だそうだ。つまり、このpermissionsの設定によってどれかのスコープにnoneが設定されて書き込み権限がなくなったか、contents: "read"
によって書き込み権限がなくなったかのどちらかが原因だとわかった。
スコープと対応するアクセス権限はPermissions required for GitHub Apps - GitHub Docsにあった。Git操作のアクセス権はcontentsスコープだったので contents: "write"
に変更したら解決した。
GitHub ActionsからGoogle Cloudに認証する
GitHub Pagesにはてなブログの最新記事を表示する - なんでもノートにGitHub ActionsからGCSへの認証に困ったと書いた。詳細をこの記事に書く。
前回の記事ではGCSにアップロードしたJSONを取得し、そのJSONに入っているブログの最新記事を表示した。JSON取得にCloud StorageのNode.js Clientライブラリを利用した。
サービスアカウントを利用した認証
Cloud Storage client libraries | Google Cloudの順に沿ってセットアップを進めた。
- サービスアカウントを作成
- サービスアカウントにGCSの読み取りロールを付与
- サービスアカウントキーを作成し、JSONファイルをダウンロード
- 環境変数
GOOGLE_APPLICATION_CREDENTIALS
に3でダウンロードしたクレデンシャルファイルのパスを設定
これでライブラリが環境変数に設定したパスからクレデンシャルファイルを読み込み、よしなにGoogle Cloudと認証を行ってくれるようになった。ローカルで認証できるようになったが、GitHub Actions上で認証するにはどうしたらよいか。Next.jsのgetStaticPropsでStatic Site Generationをしているので、GitHub Actionsでのビルド時にJSON取得、認証が行われる。GitHubで GOOGLE_APPLICATION_CREDENTIALS
で検索したら、以下のコードがあった(一部省略)。
env: GOOGLE_APPLICATION_CREDENTIALS: key.json run: | echo -n '${{ secrets.GOOGLE_APPLICATION_CREDENTIALS }}' > key.json
GitHub Actionsのシークレットにクレデンシャルファイルを保存しておいて、ジョブの実行時にファイルに書き出すというものだった。自分も考えはしたが、間違えてファイルの中身がログに出力されないか不安があったのでもう少し調べた。
Workload Identity 連携
調べたところ以下のブログを見つけた。
- サービスアカウントキーより認証情報の有効期限を短くでき、不正利用時間が短くなる
- サービスアカウントキーより管理コストが小さい
- サービスアカウントより詳細な権限管理ができる
というものだった。また、authというGitHub Actionで簡単に認証ができそうだった。Workload Identity連携の方がサービスアカウントより総合的に良さそうだったので利用することにした。
Configure workload identity federation with AWS or Azure | IAM Documentation | Google Cloudと Configure workload identity federation with AWS or Azure | IAM Documentation | Google Cloudに沿って、以下の設定をした。
- IDプールを作成
- プールにプロバイダを追加
- プロバイダ:OpenID Connect(OIDC)
- 発行元 URL:https://token.actions.githubusercontent.com/
- 属性マッピングを追加
- google.subject=assertion.repository
- 外部 IDにサービスアカウントの権限借用を許可
また、GitHub Actionsのワークフローにauth GitHub Actionのstepを追加した。必須パラメーターの workload_identity_provider
と service_account
を設定した。create_credentials_file
パラメーターがデフォルト true
で設定されていて、Clientライブラリで利用するクレデンシャルファイルを生成してくれる。また、cleanup_credentials
パラメーターがデフォルト true
で設定されていて、ジョブ終了時にクレデンシャルファイルを削除してくれる。
これでGitHub ActionsからGoogle Cloudに認証することができるようになった。
感想
どうするのが良いかわからなかったので困ったが、無事に解決できてよかった。Workload Identity連携はまだ理解がふわふわしているので醸成したい。