AWS CDK CLIのcdk initでカスタムプロジェクト名を指定可能に

FEAT AWS CDK CLI · 2026/1/15
要約: AWS CDK CLI v2.1101.0で、cdk initコマンドに--project-name(-n)オプションを追加。ディレクトリ名とは独立してプロジェクト名を指定可能に。スタッククラス名やプロジェクト内の命名に反映され、既存ディレクトリ構造での初期化が柔軟に。

新機能の背景

これまで cdk init コマンドで新しいCDKプロジェクトを作成する際、プロジェクト名はディレクトリ名から自動的に決定されていました。例えば、my-app というディレクトリで cdk init を実行すると、スタッククラス名やその他のプロジェクトコードは自動的に MyApp として生成されていました。

このため、ディレクトリ名とプロジェクト内のコード名を別にしたい場合や、既存のディレクトリ構造内でCDKプロジェクトを初期化する際に、明示的にプロジェクト名を指定できないという不便さがありました。この機能追加は、GitHub Issue #990 で要望されていたものです。

新機能の概要

AWS CDK CLI バージョン 2.1101.0 から、cdk init コマンドに新しいオプション --project-name(エイリアス -n)が追加されました。これにより、プロジェクトの初期化時に、ディレクトリ名とは独立してプロジェクト名を明示的に指定できるようになりました。

主な変更点:

使い方

基本的な使用方法

# --project-name オプションを使用
cdk init app --language typescript --project-name my-custom-project

# 短縮形 -n を使用
cdk init app --language python -n my-custom-project

具体的な使用例

TypeScript の場合:

# "infrastructure" ディレクトリでプロジェクトを初期化するが、
# プロジェクト名は "ecommerce-backend" にする
mkdir infrastructure
cd infrastructure
cdk init app --language typescript --project-name ecommerce-backend

この場合、生成されるスタックファイルは lib/ecommerce-backend-stack.ts となり、クラス名は EcommerceBackendStack になります。

Python の場合:

# "cdk" ディレクトリでプロジェクトを初期化するが、
# プロジェクト名は "data-pipeline" にする
mkdir cdk
cd cdk
cdk init app --language python -n data-pipeline

テストでの確認

実装されたテストケースによると、以下のような動作が確認されています:

// プロジェクト名を "my-project" に指定した場合
cdk init app --language typescript --project-name my-project

// 生成されるスタックファイル: lib/my-project-stack.ts
// スタッククラス名: MyProjectStack

注意点

オプション指定なしの場合は従来通り

--project-name オプションを指定しない場合、従来通りディレクトリ名からプロジェクト名が決定されます。既存の動作に影響はありません。

命名規則

指定したプロジェクト名は decamelize 処理されます(コードの実装より):

そのため、最初からケバブケース(ハイフン区切り)で指定することを推奨します。

対応言語

この機能は CDK がサポートするすべての言語テンプレートで使用できます:

バージョン要件

この機能は AWS CDK CLI バージョン 2.1101.0 以降で利用可能です。使用する前に CDK CLI を最新バージョンにアップデートしてください:

npm install -g aws-cdk@latest

他のオプションとの互換性

--project-name は他の cdk init オプションと組み合わせて使用できます:


補完情報の出典