cfn-lint로 템플릿을 검증합니다.
CloudFormation Linter(cfn-lint)는 CloudFormation 리소스 공급자 스키마와 추가 규칙에 따라 JSON 및 YAML 템플릿을 검사합니다. 이를 통해 CloudFormation으로 템플릿을 보내기 전 잘못된 리소스 속성, 지원되지 않는 값 및 일반적인 문제를 찾을 수 있습니다.
소스 코드, 릴리스 정보, 설정 및 전체 규칙 목록은 GitHub의 cfn-lint 리포지토리
설치cfn-lint
파이썬 패키지 인덱스(PyPI)에서 cfn-lint 설치:
python3 -m pip install cfn-lint
macOS에서는 대신 Homebrew를 사용하여 설치할 수 있습니다.
brew install cfn-lint
지원되는 Python 버전과 기타 설치 방법은 GitHub의 설치 지침
cfn-lint 실행
명령에 하나 이상의 템플릿 경로를 전달합니다.
cfn-lint template.yaml cfn-lint template-one.yaml template-two.json
여러 AWS 리전에 대한 템플릿을 검사하려면 --regions 옵션을 사용합니다.
cfn-lint --regions us-east-1 us-west-2 -- template.yaml
이 명령은 문제를 발견하면 0이 아닌 종료 코드를 반환합니다. 템플릿이 선택한 검사를 통과하지 못할 경우 이 동작을 사용하여 자동 빌드를 중지할 수 있습니다.
검사 구성
템플릿으로 프로젝트 설정을 유지하려면 .cfnlintrc, .cfnlintrc.yaml 또는 .cfnlintrc.yml 파일을 사용합니다. 이들 파일을 사용하여 템플릿을 선택하고, 검사를 포함하거나 무시하고, AWS 리전을 선택하고, 규칙 동작을 구성할 수 있습니다. 모든 설정은 GitHub 프로젝트 설명서의 Config 파일
워크플로에 cfn-lint 추가
cfn-lint를 지원되는 편집기에서 실행하거나, Git 커밋 전 자동으로 실행하거나, 자동 빌드의 일부로 실행할 수 있습니다. 또한 CloudFormation 언어 서버는 cfn-lint를 사용하여 입력하는 동안 문제를 표시합니다. 언어 서버 설정은 CloudFormation 언어 서버 섹션을 참조하세요.
편집기 플러그인, GitHub Actions, 사전 커밋 구성, 사용자 지정 규칙, 추가 예제는 GitHub의 cfn-lint 프로젝트 설명서