| name | cdk-diff |
| description | cdk diffを実行し、変更内容をMarkdownテーブルで整形して表示する。インフラ変更のレビューやデプロイ前確認に使用する。 |
| context | fork |
| agent | general-purpose |
以下の手順を実行する:
-
cdk/ ディレクトリで以下のコマンドを実行する:
cd cdk && npx cdk diff 2>&1
-
出力を解析して、下記フォーマットに従ってMarkdownを生成して出力する。
出力フォーマット
ステップ1: 変更サマリー(件数の一覧)
スタックごとの変更件数を表形式で示す。
## CDK Diff 結果
### 📊 変更サマリー
| スタック | ➕ 追加 | 🔄 更新 | ➖ 削除 |
|---------|:------:|:------:|:------:|
| MyStack | 2 | 1 | 0 |
変更がない場合は 変更はありません ✅ と表示して終了する。
ステップ2: 変更種別ごとのセクション
変更種別ごとに独立したセクションを設ける。各セクションは変更がある場合のみ出力する。
➕ 追加されるリソース
### ➕ 追加されるリソース
| スタック | リソースタイプ | 論理ID |
|---------|------------|------|
| MyStack | AWS::Lambda::Function | MyFunction |
🔄 更新されるリソース
更新の場合は変更前・変更後を独立した列で示す。プロパティが複数ある場合は行を分ける。
### 🔄 更新されるリソース
| スタック | 論理ID | プロパティ | 変更前 | 変更後 |
|---------|------|---------|:----:|:----:|
| MyStack | MyFunction | Runtime | nodejs16.x | nodejs20.x |
| MyStack | MyBucket | VersioningConfiguration | Suspended | Enabled |
➖ 削除されるリソース
### ➖ 削除されるリソース
| スタック | リソースタイプ | 論理ID |
|---------|------------|------|
| MyStack | AWS::IAM::Role | OldRole |
⚠️ IAMの変更(IAM変更がある場合のみ)
AWS::IAM::* に対する変更がある場合のみ、最後に注記セクションを追加する。
### ⚠️ IAMの変更
以下のIAMリソースに変更があります。意図した変更か確認してください。
| スタック | 変更種別 | リソースタイプ | 論理ID |
|---------|---------|------------|------|
| MyStack | 🔄 更新 | AWS::IAM::Role | MyRole |
解析ルール
cdk diff 出力の記号と意味:
- プロパティ差分は
└─ [~] PropertyName: "old" => "new" の形式で入れ子になっている。更新テーブルの「変更前」「変更後」列にそれぞれの値を記載する。
- ANSIエスケープコードや制御文字は無視して純粋なテキストとして解析する。
- リソースタイプが
AWS::CDK::Metadata の変更は無視する。