프라이빗 레지스트리에서 모듈 사용
모듈을 프라이빗 레지스트리에 게시하는 방법을 알아보았습니다. 이 단원에서는 Bicep 템플릿의 일부로 레지스트리에 이미 있는 모듈을 사용하는 방법을 알아봅니다.
Bicep 모듈 추가
사용하려는 모듈을 찾으면 Bicep 템플릿에 모듈 정의를 만듭니다. 예를 들면 다음과 같습니다.
module myModule 'br:myregistry.azurecr.io/modulepath/modulename:moduleversion' = {
name: 'my-module'
params: {
moduleParameter1: 'value'
}
}
모듈 정의는 로컬 모듈의 정의와 비슷하지만 한 가지 중요한 차이점이 있습니다. 파일 시스템에서 Bicep 파일의 경로를 지정하는 대신 레지스트리에 모듈 경로를 포함합니다.
모듈에 대한 참조를 추가한 후 Visual Studio Code 레지스트리에서 모듈을 자동으로 다운로드하려고 시도합니다. 모듈이 다운로드되면 Visual Studio Code용 Bicep 확장은 작업 시 IntelliSense 및 기타 코드 작성 지원을 제공합니다.
별칭
레지스트리 별칭을 사용하여 모듈 정의를 간소화할 수 있습니다. 모듈을 정의할 때마다 레지스트리 이름을 지정하는 대신 해당 별칭을 사용합니다. 별칭은 다음과 같은 몇 가지 방법으로 도움이 됩니다.
- 그러면 Bicep 파일을 더 깔끔하게 유지하고 레지스트리의 전체 이름을 반복적으로 입력하지 않도록 할 수 있습니다.
- 나중에 새 레지스트리로 변경하는 경우 모든 참조를 업데이트하는 대신 별칭을 업데이트할 수 있습니다.
- 일부 조직에서는 개발 및 프로덕션 환경과 같은 다양한 상황에 대해 서로 다른 레지스트리를 사용해야 합니다. 구성 파일을 수정하여 별칭이 나타내는 레지스트리를 전환할 수 있습니다. 그러면 변경 내용이 폴더의 모든 Bicep 파일에 적용됩니다.
별칭을 정의하려면 Bicep 파일과 동일한 폴더에 bicepconfig.json 파일을 만들어야 합니다. bicepconfig.json 파일 내에서 다음 예제와 같이 별칭을 정의합니다.
{
"moduleAliases": {
"br": {
"MyRegistry": {
"registry": "myregistry.azurecr.io"
}
}
}
}
Bicep 파일에서 모듈을 정의할 때 별칭을 포함하는 약간 다른 형식의 모듈 경로를 사용합니다.
module myModule 'br/MyRegistry:bicep/my-module:v1' = {
// ...
}
팁
경로의 시작 부분은 별칭을 사용하는 경우 br/
이고 사용하지 않는 경우 br:
입니다.
별칭에는 레지스트리 내 모듈 경로가 포함될 수도 있으며 이는 모듈에 공통 접두사를 사용하는 경우에 유용합니다.
{
"moduleAliases": {
"br": {
"MyRegistryWithPath": {
"registry": "myregistry.azurecr.io",
"modulePath": "bicep"
}
}
}
}
그런 다음, Bicep 파일에서 모듈을 정의할 때 경로를 생략할 수 있습니다.
module myModule 'br/MyRegistryWithPath:my-module:v1' = {
// ...
}
Bicep 파일 빌드
Bicep 파일을 배포할 준비가 되면 평소처럼 배포합니다. Bicep은 배포 프로세스의 일부로 레지스트리에서 모듈을 자동으로 다운로드합니다. Bicep은 참조하는 모든 모듈을 트랜스파일된 ARM 템플릿인 JSON 파일에 포함합니다.
bicep restore
명령을 사용하여 빌드에서 모듈 다운로드 프로세스를 분리할 수도 있습니다. 그런 다음 bicep build
명령과 --no-restore
명령줄 스위치를 사용하여 빌드 프로세스의 모듈 다운로드를 중단시킬 수 있습니다. 하지만 일반적으로는 모듈을 분리할 필요가 없으며 Bicep에서 자동으로 모듈을 다운로드하도록 할 수 있습니다.