Slide 13
Slide 13 text
13
CFnテンプレートとしてのレビューとバリデーション
● バリデーション結果が正常とな
るまで、テンプレートをClaudeで
レビューさせる処理
● CFn ValidateTemplate APIを用
いて、テンプレートにエラーがな
いか確認
● エラーがある場合のみエラー
メッセージを含めて、Claudeに
繰り返しレビューさせる
# 一部省略
def lambda_handler(event: Dict[Any, Any], context: Any) -> Dict[str, Any]:
for review_count in range(max_review_count):
logger.info(f"Validation Status: {status}")
if status == "normally":
break
else:
reviewed_yaml = review_yaml(
system_prompt, tmp_image_path, target_yaml, cfn_res
)
status, cfn_res = cfn_validate(reviewed_yaml)
target_yaml = reviewed_yaml
def review_yaml(system_prompt: str, tmp_image_path: str, yaml_content:
str, cfn_err: Any) -> Any:
first_review_text = f"""
\nもしエラーメッセージが何かしら追加で提示されている場合は、エラーを解消
できるように更新したテンプレートを全て出力してください。
\n\n
\n{yaml_content}
\n\n<エラーメッセージ>
\n{cfn_err}
"""