Bicep Linter 사용
Bicep Linter는 Bicep 파일에서 구문 오류 및 모범 사례 위반을 확인합니다. Linter는 개발 중 지침을 제공하여 코딩 표준을 적용하는 데 도움이 됩니다. 파일 검사에 사용할 모범 사례를 사용자 지정할 수 있습니다.
Linter 요구 사항
Linter는 Bicep CLI 및 Visual Studio Code용 Bicep 확장에 통합됩니다. 사용하려면 버전이 0.4 이상이어야 합니다.
기본 규칙
기본 Linter 규칙 집합은 최소이며 arm-ttk 테스트 사례에서 가져옵니다. 확장과 Bicep CLI는 경고 수준으로 설정된 다음 규칙을 확인합니다.
- adminusername-should-not-be-literal
- artifacts-parameters
- decompiler-cleanup
- explicit-values-for-loc-params
- max-asserts
- max-outputs
- max-params
- max-resources
- max-variables
- nested-deployment-template-scoping
- no-conflicting-metadata
- no-deployments-resources
- no-hardcoded-env-urls
- no-hardcoded-location
- no-loc-expr-outside-params
- no-unnecessary-dependson
- no-unused-existing-resources
- no-unused-params
- no-unused-vars
- outputs-should-not-contain-secrets
- prefer-interpolation
- prefer-unquoted-property-names
- secure-parameter-default
- secure-params-in-nested-deploy
- secure-secrets-in-params
- simplify-interpolation
- simplify-json-null
- use-parent-property
- use-protectedsettings-for-commandtoexecute-secrets
- use-recent-api-versions
- use-recent-module-versions
- use-resource-id-functions
- use-resource-symbol-reference
- use-safe-access
- use-secure-value-for-secure-inputs
- use-stable-resource-identifiers
- use-stable-vm-image
- what-if-short-circuiting
Linter 규칙이 적용되는 방식을 사용자 지정할 수 있습니다. 기본 설정을 덮어쓰려면 bicepconfig.json 파일을 추가하고 사용자 지정을 적용합니다. 이러한 설정을 적용하는 방법에 대한 자세한 내용은 Bicep 구성 파일에 사용자 지정 추가를 참조하세요.
Visual Studio Code 사용
다음 스크린샷은 Visual Studio Code의 Linter를 보여 줍니다.
문제 창에는 오류 네 개, 경고 한 개, 스크린샷에 표시된 정보 메시지 한 개가 있습니다. 정보 메시지에는 사용되는 Bicep 구성 파일이 표시됩니다. 구성 파일에서 자세한 정보 표시를 true로 설정한 경우에만 이 정보가 표시됩니다.
마우스 커서로 문제 영역 중 하나를 가리킵니다. Linter는 오류 또는 경고에 대한 세부 정보를 제공합니다. 영역을 선택하면 파란색 전구도 표시됩니다.
전구 또는 빠른 수정 링크를 선택하여 솔루션을 확인합니다.
솔루션을 선택하여 문제를 자동으로 수정합니다.
Bicep CLI에서 사용
다음 스크린샷은 명령줄의 Linter를 보여 줍니다. lint 명령 및 build 명령의 출력은 모든 규칙 위반을 보여 줍니다.
이러한 검사를 CI/CD 파이프라인의 일부로 통합할 수 있습니다. GitHub 작업을 사용하여 Bicep 빌드를 시도할 수 있습니다. 오류가 발생하면 파이프라인이 실패합니다.
가양성 해제
경우에 따라 규칙이 가양성일 수 있습니다. 예를 들어 environment() 함수를 사용하지 않고 Blob 스토리지에 대한 링크를 직접 포함해야 할 수 있습니다.
이 경우 경고와 함께 줄 앞에 #disable-next-line <rule name>
을 추가하여 전체 문서가 아닌 한 줄에 대해서만 경고를 사용하지 않도록 설정할 수 있습니다.
#disable-next-line no-hardcoded-env-urls //Direct download link to my toolset
scriptDownloadUrl: 'https://mytools.blob.core.windows.net/...'
규칙이 이 줄에 적용되지 않는 이유를 설명하는 주석을 추가하는 것이 좋습니다.
linter 규칙을 표시하지 않으려면 bicepconfig.json에서 규칙 수준을 Off
로 변경할 수 있습니다. 예를 들어 다음 예제에서 no-deployments-reesources
규칙은 표시되지 않습니다.
{
"analyzers": {
"core": {
"rules": {
"no-deployments-resources": {
"level": "off"
}
}
}
}
}
다음 단계
- Linter 규칙 사용자 지정에 대한 자세한 내용은 Bicep 구성 파일에 사용자 지정 설정 추가를 참조하세요.
- Visual Studio Code 및 Bicep 확장 사용에 대한 자세한 내용은 빠른 시작: Visual Studio Code를 사용하여 Bicep 파일 만들기를 참조하세요.