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