Bicep CLI 명령
이 문서에서는 Bicep CLI에서 사용할 수 있는 명령에 대해 설명합니다. 이러한 명령을 실행하는 방법에는 Azure CLI를 활용하거나 Bicep CLI 명령을 직접 호출하는 두 가지 옵션이 있습니다. 각 방법마다 고유한 설치 프로세스가 필요합니다. 자세한 내용은 Azure CLI 설치 및 Azure PowerShell 설치를 참조하세요.
이 문서에서는 Azure CLI에서 명령을 실행하는 방법을 보여 줍니다. Azure CLI를 통해 실행하는 경우 az
를 사용하여 명령을 시작합니다. Azure CLI 사용하지 않는 경우 명령을 시작할 때 az
를 사용하지 않고 명령을 실행합니다. 예를 들어, az bicep build
는 bicep build
가 되고 az bicep version
은 bicep --version
이 됩니다.
build
build
명령은 Bicep 파일을 ARM 템플릿(Azure Resource Manager 템플릿)으로 변환합니다. 일반적으로 이 명령은 Bicep 파일을 배포할 때 자동으로 실행되므로 실행할 필요가 없습니다. Bicep 파일에서 만든 ARM 템플릿 JSON을 보려면 수동으로 실행합니다.
다음 Bicep 기능을 사용하면 언어 버전 2.0 코드를 자동으로 생성할 수 있습니다.
다음 예제에서는 main.bicep이라는 Bicep 파일을 main.json이라는 ARM 템플릿으로 변환합니다. 새 파일은 Bicep 파일이 있는 동일한 디렉터리에 만들어집니다.
az bicep build --file main.bicep
다음 예제는 main.json을 다른 디렉터리에 저장합니다.
az bicep build --file main.bicep --outdir c:\jsontemplates
다음 예제는 만들 파일의 이름과 위치를 지정합니다.
az bicep build --file main.bicep --outfile c:\jsontemplates\azuredeploy.json
stdout
에 파일을 인쇄하려면 다음을 사용합니다.
az bicep build --file main.bicep --stdout
Bicep 파일에 외부 레지스트리를 참조하는 모듈이 포함된 경우 빌드 명령은 자동으로 restore를 호출합니다. restore 명령은 레지스트리에서 파일을 가져오고 로컬 캐시에 저장합니다.
참고 항목
복원 명령은 캐시를 새로 고치지 않습니다. 자세한 내용은 복원을 참조하세요.
restore를 자동으로 호출하지 않으려면 --no-restore
스위치를 사용합니다.
az bicep build --no-restore <bicep-file>
외부 모듈 중 하나가 캐시되어 있지 않으면 --no-restore
스위치를 사용한 빌드 프로세스가 실패합니다.
The module with reference "br:exampleregistry.azurecr.io/bicep/modules/storage:v1" has not been restored.
이 오류가 발생하면 --no-restore
스위치 없이 build
명령을 실행하거나, 먼저 bicep restore
를 실행합니다.
--no-restore
스위치를 사용하려면 Bicep CLI 버전 0.4.X 이상을 사용해야 합니다.
빌드 매개 변수
build-params
명령은 .bicepparam 파일을 JSON 매개 변수 파일로 빌드합니다.
az bicep build-params --file params.bicepparam
이 명령은 params.bicepparam 매개 변수 파일을 params.json JSON 매개 변수 파일로 변환합니다.
디컴파일
decompile
명령은 ARM 템플릿 JSON을 Bicep 파일로 변환합니다.
az bicep decompile --file main.json
이 명령은 main.json과 동일한 디렉터리에 main.bicep이라는 파일을 만듭니다. main.bicep이 동일한 디렉터리에 있는 경우 --force 스위치를 사용하여 기존 Bicep 파일을 덮어씁니다.
이 명령 사용에 대한 자세한 내용은 ARM 템플릿 JSON을 Bicep으로 디컴파일을 참조하세요.
디컴파일 매개 변수
decompile-params
명령은 JSON 매개 변수 파일을 .bicepparam 매개 변수 파일로 디컴파일합니다.
az bicep decompile-params --file azuredeploy.parameters.json --bicep-file ./dir/main.bicep
이 명령은 azuredeploy.parameters.json 매개 변수 파일을 azuredeploy.parameters.bicepparam 파일로 디컴파일합니다. --bicep-file
은 using
선언에서 참조되는 Bicep 파일(.bicepparam 파일 기준)에 대한 경로를 지정합니다.
format
format
명령은 Bicep 파일의 형식을 지정합니다. Visual Studio Code의 SHIFT+ALT+F
바로 가기와 동일한 기능을 제공합니다.
az bicep format --file main.bicep
generate-params
generate-params
명령은 지정된 Bicep 파일에서 매개 변수 파일을 빌드하고 기존 매개 변수 파일이 있는 경우 업데이트합니다.
az bicep generate-params --file main.bicep --output-format bicepparam --include-params all
이 명령은 main.bicepparam이라는 Bicep 매개 변수 파일을 만듭니다. 매개 변수 파일에는 기본값으로 구성되었는지 여부에 관계없이 Bicep 파일의 모든 매개 변수가 포함됩니다.
az bicep generate-params --file main.bicep --outfile main.parameters.json
이 명령은 main.parameters.json 매개 변수 파일을 만듭니다. 매개 변수 파일에는 Bicep 파일에 구성된 기본값이 없는 매개 변수만 포함됩니다.
설치
install
명령은 로컬 환경에 Bicep CLI를 추가합니다. 자세한 내용은 Bicep 도구 설치를 참조하세요. 이 명령은 Azure CLI를 통해서만 사용할 수 있습니다.
최신 버전을 설치하려면 다음을 사용하세요.
az bicep install
특정 버전을 설치하려면
az bicep install --version v0.3.255
jsonrpc
이 jsonrpc
명령을 사용하면 JSON-RPC 인터페이스를 사용하여 Bicep CLI를 실행할 수 있으므로 구조적 출력과 프로그래밍 방식으로 상호 작용할 수 있으며 여러 파일을 컴파일할 때 콜드 시작 지연을 방지할 수 있습니다. 또한 이 설정은 non-.NET 언어로 프로그래밍 방식으로 Bicep 파일과 상호 작용하는 라이브러리 빌드를 지원합니다.
입력/출력을 보내고 받기 위한 와이어 형식은 다음 구조를 사용하여 헤더로 구분되며 여기서 \r
캐리지 리턴 및 \n
줄 바꿈 문자를 나타냅니다.
Content-Length: <length>\r\n\r\n<message>\r\n\r\n
<length>
는 후행을<message>
포함하여 문자열의 길이입니다\r\n\r\n
.<message>
는 원시 JSON 메시지입니다.
예시:
Content-Length: 72\r\n\r\n{"jsonrpc": "2.0", "id": 0, "method": "bicep/version", "params": {}}\r\n\r\n
다음 메시지는 Bicep 버전에 대한 예제를 보여줍니다.
입력:
{ "jsonrpc": "2.0", "id": 0, "method": "bicep/version", "params": {} }
출력은 다음과 같습니다.
{ "jsonrpc": "2.0", "id": 0, "result": { "version": "0.24.211" } }
사용 가능한 메서드 및 요청/응답 본문은 다음을 참조하세요 ICliJsonRpcProtocol.cs
.
JSONRPC 연결을 설정하고 Node를 사용하여 프로그래밍 방식으로 Bicep 파일과 상호 작용하는 예제는 다음을 참조하세요 jsonrpc.test.ts
.
명명된 파이프에 대한 사용량
다음 구문을 사용하여 기존 명명된 파이프에 JSONRPC 클라이언트로 연결합니다.
bicep jsonrpc --pipe <named_pipe>`
<named_pipe>
는 JSONRPC 클라이언트를 연결할 기존 명명된 파이프입니다.
OSX/Linux에서 명명된 파이프에 연결하려면:
bicep jsonrpc --pipe /tmp/bicep-81375a8084b474fa2eaedda1702a7aa40e2eaa24b3.sock
Windows에서 명명된 파이프에 연결하려면:
bicep jsonrpc --pipe \\.\pipe\\bicep-81375a8084b474fa2eaedda1702a7aa40e2eaa24b3.sock`
TCP 소켓 사용량
다음 구문을 사용하여 기존 TCP 소켓에 JSONRPC 클라이언트로 연결합니다.
bicep jsonrpc --socket <tcp_socket>
<tcp_socket>
는 JSONRPC 클라이언트를 연결할 소켓 번호입니다.
TCP 소켓에 연결하려면
bicep jsonrpc --socket 12345
stdin 및 stdout 사용
다음 구문을 사용하여 메시지에 stdin & stdout을 사용하여 JSONRPC 인터페이스를 실행합니다.
bicep jsonrpc --stdio
린트
lint
명령은 Bicep 파일의 오류 및 linter 규칙 위반을 반환합니다.
az bicep lint --file main.bicep
Bicep 파일에 외부 레지스트리를 참조하는 모듈이 포함된 경우 lint 명령은 자동으로 restore를 호출합니다. restore 명령은 레지스트리에서 파일을 가져오고 로컬 캐시에 저장합니다.
참고 항목
복원 명령은 캐시를 새로 고치지 않습니다. 자세한 내용은 복원을 참조하세요.
restore를 자동으로 호출하지 않으려면 --no-restore
스위치를 사용합니다.
az bicep lint --no-restore <bicep-file>
외부 모듈 중 하나가 캐시되어 있지 않으면 --no-restore
스위치를 사용한 lint 프로세스가 실패합니다.
The module with reference "br:exampleregistry.azurecr.io/bicep/modules/storage:v1" has not been restored.
이 오류가 발생하면 --no-restore
스위치 없이 lint
명령을 실행하거나, 먼저 bicep restore
를 실행합니다.
list-versions
list-versions
명령은 사용 가능한 모든 버전의 Bicep CLI를 반환합니다. 이 명령을 사용하여 새 버전을 업그레이드하거나 설치할 것인지 확인합니다. 이 명령은 Azure CLI를 통해서만 사용할 수 있습니다.
az bicep list-versions
이 명령은 사용 가능한 버전 배열을 반환합니다.
[
"v0.28.1",
"v0.27.1",
"v0.26.170",
"v0.26.54",
"v0.25.53",
"v0.25.3",
"v0.24.24",
"v0.23.1",
"v0.22.6",
"v0.21.1",
"v0.20.4",
"v0.19.5",
"v0.18.4",
"v0.17.1",
"v0.16.2",
"v0.16.1",
"v0.15.31",
"v0.14.85",
"v0.14.46",
"v0.14.6",
"v0.13.1",
"v0.12.40",
"v0.12.1",
"v0.11.1",
"v0.10.61",
"v0.10.13",
"v0.9.1",
"v0.8.9",
"v0.8.2",
"v0.7.4"
]
publish
publish
명령은 레지스트리에 모듈을 추가합니다. Azure 컨테이너 레지스트리가 있어야 하고 레지스트리에 게시하는 계정에 올바른 권한이 있어야 합니다. 모듈 레지스트리 설정에 관한 자세한 내용은 Bicep 모듈에 프라이빗 레지스트리 사용을 참조하세요. 모듈을 게시하려면 계정에 레지스트리에 액세스할 수 있는 올바른 프로필과 사용 권한이 있어야 합니다. Bicep 구성 파일에서 레지스트리 인증을 위한 프로필과 자격 증명 우선 순위를 구성할 수 있습니다.
레지스트리에 파일을 게시한 후 모듈에서 참조할 수 있습니다.
publish 명령을 사용하려면 Bicep CLI 버전 0.14.X 이상을 사용해야 합니다. --documentationUri
/-d
매개 변수를 사용하려면 Bicep CLI 버전 0.14.X 이상이 있어야 합니다.
레지스트리에 모듈을 게시하려면 다음을 사용합니다.
az bicep publish --file <bicep-file> --target br:<registry-name>.azurecr.io/<module-path>:<tag> --documentationUri <documentation-uri>
예시:
az bicep publish --file storage.bicep --target br:exampleregistry.azurecr.io/bicep/modules/storage:v1 --documentationUri https://www.contoso.com/exampleregistry.html
이 publish
명령은 bicepconfig.json 파일에 지정한 별칭을 인식하지 못합니다. 전체 모듈 경로를 제공합니다.
Warning
동일한 대상에 게시하면 이전 모듈을 덮어씁니다. 업데이트할 때 버전을 증분하는 것이 좋습니다.
복원
Bicep 파일이 레지스트리에 게시된 모듈을 사용하는 경우 restore
명령은 레지스트리에서 필요한 모든 모듈의 복사본을 가져옵니다. 해당 복사본을 로컬 캐시에 저장합니다. Bicep 파일은 로컬 캐시에서 외부 파일을 사용할 수 있는 경우만 빌드할 수 있습니다. 일반적으로 빌드 프로세스에 의해 복원이 자동으로 트리거되므로 복원을 실행할 필요가 없습니다.
외부 모듈을 로컬 캐시로 복원하려면 계정에 레지스트리에 액세스할 수 있는 올바른 프로필과 사용 권한이 있어야 합니다. Bicep 구성 파일에서 레지스트리 인증을 위한 프로필과 자격 증명 우선 순위를 구성할 수 있습니다.
restore 명령을 사용하려면 Bicep CLI 버전 0.4.X 이상을 사용해야 합니다. 이 명령은 현재 Bicep CLI를 직접 호출하는 경우에만 사용할 수 있습니다. 현재 Azure CLI 명령을 통해서는 사용할 수 없습니다.
파일에 대한 외부 모듈을 수동으로 복원하려면 다음을 사용합니다.
az bicep restore --file <bicep-file> [--force]
제공하는 Bicep 파일은 배포할 파일입니다. 레지스트리에 연결되는 모듈이 포함되어야 합니다. 예를 들어, 다음 파일을 복원할 수 있습니다.
module stgModule 'br:exampleregistry.azurecr.io/bicep/modules/storage:v1' = {
name: 'storageDeploy'
params: {
storagePrefix: 'examplestg1'
}
}
로컬 캐시는 다음 위치에 있습니다.
Windows
%USERPROFILE%\.bicep\br\<registry-name>.azurecr.io\<module-path\<tag>
Linux
/home/<username>/.bicep
Mac에서
~/.bicep
restore
명령은 모듈이 이미 캐시된 경우 캐시를 새로 고치지 않습니다. 캐시를 새로 고치려면 캐시에서 모듈 경로를 삭제하거나 restore
명령과 함께 --force
스위치를 사용할 수 있습니다.
Upgrade(업그레이드)
upgrade
명령은 설치된 버전을 최신 버전으로 업데이트합니다. 이 명령은 Azure CLI를 통해서만 사용할 수 있습니다.
az bicep upgrade
version
version
명령은 설치된 버전을 반환합니다.
az bicep version
이 명령은 버전 번호를 표시합니다.
Bicep CLI version 0.22.6 (d62b94db31)
Bicep CLI를 통해 직접 이 명령을 호출하려면 다음을 사용합니다.
bicep --version
Bicep CLI가 설치되지 않은 경우 Bicep CLI를 찾을 수 없다는 오류 메시지가 표시됩니다.
다음 단계
Bicep 파일 배포에 대한 자세한 내용은 다음을 참조하세요.