クラウドソリューション事業部の中村です。
タイトルの通りです、AWS CDKにコントリビュートしてみました。
というのも、私はOSS文化とか思想が好きで、世界中の開発者でソフトウェアを良くしていく。みたいな流れが特に魅力を感じたりしていました。
AWS CDK Conference Japan 2025 に参加した後から、AWS CDKへのコントリビュートの熱が最高潮になっていました。
ただ、腰を据えて取り組む時間がなかなか取れず…
「これ実装できそう!」と思っていたものも、いざ手をつけると想像より難しかったりしますよね(あるある)。
あれこれ言っているうちに 気づけば2025年末 になっていました。
きっかけ
そんな中、個人的に Step FunctionsをAWS CDKで書いていたときに、ふとした違和感に遭遇しました。
調べてみると、すでにほぼ同じ内容で Issueが提出されていました。
「回避する方法はあるけど、せっかくなら直したい、やってみよう」
…という気持ちになり、一言コメントしてから実装してみることにしました。
(aws-stepfunctions): Unable to use JSONata expression for Map MaxConcurrency parameter
実装
実装自体は問題なくサクサクとできました。
1private renderMaxConcurrency(): any {
2 if (!this.maxConcurrency && !this.jsonataMaxConcurrency) return undefined;
3 return FieldUtils.renderObject({
4 MaxConcurrency: this.maxConcurrency ?? this.jsonataMaxConcurrency,
5 });
6}以前、コントリビューションしようとした時より「どこを触ればいいか?」「どう治せばいいか」がわかるようになってきて、自分のAWS CDK力が成長していることを感じます。
提出したPull Request
実装できたので、そのままPR提出します。
fix(stepfunctions): allow JSONata expressions for Map maxConcurrency #36462
提出した瞬間、めっちゃCIが走ります。ガクガクブルブル
レビューが爆速で返ってきた
年末年始ということもあり「年明けになるかな〜」と思っていたのですが、community reviewer の方が速攻でレビューしてくださいました。
本当にありがとうございます🙏
コメントを見ながら、修正していきます。
Approveがされました🎉
年が明けて 2026年1月13日、今度はAWS CDKのメンテナーの方からのレビューが行われ、こちらもApproveされました。
そして、無事マージされました🎊
まとめ
今回取り組んでみて感じたことは以下です。
- 思ったよりハードル高くない
- サービスや機能によってはバグもある
- 違和感やバグを放置せず、直していくことの大切さ
今回はすでにIssueが存在するものに取り組みましたが、機能追加もチャレンジしてみたいなと思いました。
Step FunctionsにはまだまだIssueがあるので、隙間時間で頑張ってみようと思います、好きなサービスですし。
