Vimmer가 CloudFormation을 작성한다면 ale + cfn-python-lint가 유용합니다!
AWS CloudFormation을 작성하고 있습니까?
ale
와 cfn-python-lint
를 사용합시다 어떻게 편리합니까?
보는 것이 빠르다고 생각하므로, 시험에 깨진 CloudFormation 템플릿 파일을 vim 로 열어 보겠습니다.
AWSTemplateFormatVersion: 2010-09-09
Description: Sample template for ale.vim and cfn-python-lint
Parameters:
# このパラメータは使われてない
ThisIsNotUsed:
Type: String
Resources:
EC2Instance:
Type: 'AWS::EC2::Instance'
# 必須パラメータが未定義
Properties:
# AvailabilityZone のハードコーディングは避けるべし
# ≒ Parameterや Fn::GetAZs を使おう
AvailabilityZone: 'us-west-2a'
Tags:
- Key: Name
# 未定義パラメータを使用している
Value: !Sub "${UndefinedParameter}"
Outputs:
Sample:
# 未定義リソースを使用している
Value: !Ref NoExistResoure
내 vim이라면 다음과 같이 보입니다.
>>
또는 --
가 있는 행에 커서를 맞추면 vim 상태 라인에 메시지가 표시됩니다.
ImageId
또는 LaunchTemplate
가 필수라고 말해주고 있습니다. 감사합니다.
ale이란?
ale은 Vim (8.0 이상)/NeoVim 용 Asynchronous Lint Engine 플러그인입니다.rubocop
및 eslint
와 같은 다양한 Linter와 함께 Lint 결과를 Vim에 표시 할 수 있습니다.
비슷한 플러그인에 syntastic이 있지만 ale
는 vim8
의 job
에 해당하므로 비동기 처리됩니다. 충실하고, 등과 후발 같은 특징이 있습니다.
마찬가지로 후발 플러그인으로 neomake도있는 것 같습니다만, 나는 neovim
밖에 사용한 적이 없으므로 자세히 모릅니다 ....
cfn-python-lint란 무엇입니까?
cfn-python-lint은 vador
로 만든 Python CloudFormation Linter입니다. 2018/04 에 방금 공개된 갓 갓후아호야입니다.
기존의 Linter 로서는, NodeJS제의 ale
가 있었습니다만, 이쪽은 출력 결과가 매우 인간에게 친절하고, 기계에는 상냥하지 않은 (퍼스하기 어려운) 것이었습니다.
awslabs
는 ansible-lint 을 참고해 실장되고 있는 것 같고 1 기계에도 친화적인 출력을 할 수 있게 되어 있습니다.
설정 방법
내 환경
필자의 환경은 다음과 같습니다.
AWSTemplateFormatVersion: 2010-09-09
Description: Sample template for ale.vim and cfn-python-lint
Parameters:
# このパラメータは使われてない
ThisIsNotUsed:
Type: String
Resources:
EC2Instance:
Type: 'AWS::EC2::Instance'
# 必須パラメータが未定義
Properties:
# AvailabilityZone のハードコーディングは避けるべし
# ≒ Parameterや Fn::GetAZs を使おう
AvailabilityZone: 'us-west-2a'
Tags:
- Key: Name
# 未定義パラメータを使用している
Value: !Sub "${UndefinedParameter}"
Outputs:
Sample:
# 未定義リソースを使用している
Value: !Ref NoExistResoure
ale은 Vim (8.0 이상)/NeoVim 용 Asynchronous Lint Engine 플러그인입니다.
rubocop
및 eslint
와 같은 다양한 Linter와 함께 Lint 결과를 Vim에 표시 할 수 있습니다.비슷한 플러그인에 syntastic이 있지만
ale
는 vim8
의 job
에 해당하므로 비동기 처리됩니다. 충실하고, 등과 후발 같은 특징이 있습니다.마찬가지로 후발 플러그인으로 neomake도있는 것 같습니다만, 나는
neovim
밖에 사용한 적이 없으므로 자세히 모릅니다 ....cfn-python-lint란 무엇입니까?
cfn-python-lint은 vador
로 만든 Python CloudFormation Linter입니다. 2018/04 에 방금 공개된 갓 갓후아호야입니다.
기존의 Linter 로서는, NodeJS제의 ale
가 있었습니다만, 이쪽은 출력 결과가 매우 인간에게 친절하고, 기계에는 상냥하지 않은 (퍼스하기 어려운) 것이었습니다.
awslabs
는 ansible-lint 을 참고해 실장되고 있는 것 같고 1 기계에도 친화적인 출력을 할 수 있게 되어 있습니다.
설정 방법
내 환경
필자의 환경은 다음과 같습니다.
내 환경
필자의 환경은 다음과 같습니다.
[python] cfn-python-lint 설치
[cfn-lint](https://github.com/martysweet/cfn-lint)
는 cfn-python-lint
로 설치할 수 있습니다.GitHub의 리포지토리는
cfn-python-lint
이지만 pip
로 설치할 때는 cfn-python-lint
입니다. 2pip install cfn-lint
[vim] ale 설치
pip
를 설치합니다.예를 들어 dein.vim에서 플러그인을 관리하는 경우,
call dein#add("w0rp/ale")
같은 느낌입니다.
나는 TOML을 사용하고 있기 때문에,
[[plugins]]
repo = "w0rp/ale"
라는 상태입니다.
[vim] filetype=cloudformation 설정
cfn-lint
를 ale
에서 사용하려면 cfn-python-lint
를 ale
로 설정해야 합니다.filetype
가 cloudformation
이면 filetype
는 자동으로 cloudformation
를 사용합니다.제 경우에는,
ale
라고 하는 파일명으로 하는 것이 많기 때문에 cfn-python-lint
에 다음과 같이 설정하고 있습니다.au BufRead,BufNewFile *.template.yaml set ft=cloudformation.yaml
xxxx.template.yaml
를 기반으로 ~/.vim/ftdetect/cloudformation.vim
를 yaml
로 설정하면 fieltype
의 구문 강조 표시를 사용하면서 cloudformation
에서 yaml
를 사용할 수 있습니다.비고
그건 그렇고, ale
에서 cfn-python-lint
를 사용할 수있게 한 것은 저입니다
덧붙여서 그 직후, ale
를 최신판으로 하면 움직이지 않기 때문에 수정되었습니다
htps : // 기주 b. 코 m / 아 ws bs / cf 응 py 텐 ぃ t # c ぢ t ↩
커멘드명도 cfn-python-lint
인데 Node.js제의 cfn-python-lint
라고 씌운 것은 일부러인가 어떨까... ↩
Reference
이 문제에 관하여(Vimmer가 CloudFormation을 작성한다면 ale + cfn-python-lint가 유용합니다!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yasuhiroki/items/f4a2871010928514d433
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Vimmer가 CloudFormation을 작성한다면 ale + cfn-python-lint가 유용합니다!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yasuhiroki/items/f4a2871010928514d433텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)