Bicep 구성 파일에 모듈 설정 추가

bicepconfig.json 파일에서 모듈 경로의 별칭을 만들고 모듈 게시 및 복원을 위한 프로필 및 자격 증명 우선 순위를 구성할 수 있습니다.

이 문서에서는 Bicep 모듈 작업에 사용할 수 있는 설정에 대해 설명합니다.

모듈의 별칭

모듈에 연결하기 위해 경로를 단순화하려면 구성 파일에 별칭을 만듭니다. 별칭은 템플릿 사양을 포함하는 리소스 그룹 또는 모듈 레지스트리를 참조합니다.

구성 파일에는 moduleAliases의 속성이 포함됩니다. 이 속성에는 정의하는 모든 별칭이 포함됩니다. 이 속성에서 별칭은 레지스트리 또는 템플릿 사양을 참조하는지 여부에 따라 분할됩니다.

Bicep 레지스트리의 별칭을 만들려면 br 속성을 추가합니다. 템플릿 사양의 별칭을 추가하려면 ts 속성을 사용합니다.

{
  "moduleAliases": {
    "br": {
      <add-registry-aliases>
    },
    "ts": {
      <add-template-specs-aliases>
    }
  }
}

br 속성 내에서 필요한 만큼 별칭을 추가합니다. 각 별칭에 대해 이름과 다음 속성을 지정합니다.

  • registry(필수): 레지스트리 로그인 서버 이름
  • modulePath(선택 사항): 모듈이 저장되는 레지스트리 리포지토리

ts 속성 내에서 필요한 만큼 별칭을 추가합니다. 각 별칭에 대해 이름과 다음 속성을 지정합니다.

  • subscription(필수): 템플릿 사양을 호스트하는 구독 ID
  • resourceGroup(필수): 템플릿 사양을 포함하는 리소스 그룹의 이름

다음 예제에서는 모듈 레지스트리의 별칭 두 개와 템플릿 사양을 포함하는 리소스 그룹의 별칭 하나를 정의하는 구성 파일을 보여 줍니다.

{
  "moduleAliases": {
    "br": {
      "ContosoRegistry": {
        "registry": "contosoregistry.azurecr.io"
      },
      "CoreModules": {
        "registry": "contosoregistry.azurecr.io",
        "modulePath": "bicep/modules/core"
      }
    },
    "ts": {
      "CoreSpecs": {
        "subscription": "00000000-0000-0000-0000-000000000000",
        "resourceGroup": "CoreSpecsRG"
      }
    }
  }
}

모듈 참조에서 별칭을 사용하는 경우 형식을 사용해야 합니다.

br/<alias>:<file>:<tag>
ts/<alias>:<file>:<tag>

파일 자체가 아니라 모듈이 포함된 폴더 또는 리소스 그룹에 대한 별칭을 정의합니다. 파일 이름은 모듈에 대한 참조에 포함되어야 합니다.

별칭이 없으면 전체 경로를 사용하여 레지스트리의 모듈에 연결합니다.

module stgModule 'br:contosoregistry.azurecr.io/bicep/modules/core/storage:v1' = {

별칭이 있으면 레지스트리의 별칭을 사용하여 링크를 단순화할 수 있습니다.

module stgModule 'br/ContosoRegistry:bicep/modules/core/storage:v1' = {

또는 레지스트리 및 모듈 경로를 지정하는 별칭을 사용하여 링크를 단순화할 수 있습니다.

module stgModule  'br/CoreModules:storage:v1' = {

템플릿 사양의 경우 다음을 사용합니다.

module stgModule  'ts/CoreSpecs:storage:v1' = {

공용 모듈 레지스트리에 대한 별칭이 미리 정의되었습니다. 공용 모듈을 참조하려면 다음 형식을 사용하면 됩니다.

br/public:<file>:<tag>

bicepconfig.json 파일에서 공용 모듈 레지스트리 별칭 정의를 재정의할 수 있습니다.

{
  "moduleAliases": {
    "br": {
      "public": {
        "registry": "<your_module_registry>",
        "modulePath": "<optional_module_path>"
      }
    }
  }
}

프로필 및 자격 증명 구성

모듈을 프라이빗 모듈 레지스트리에 게시하거나 외부 모듈을 로컬 캐시에 복원하려면 계정에 레지스트리에 액세스할 수 있는 올바른 권한이 있어야 합니다. 레지스트리에 인증하기 위해 Bicep 구성 파일을 수동으로 구성할 currentProfilecredentialPrecedence 수 있습니다.

{
  "cloud": {
    "currentProfile": "AzureCloud",
    "profiles": {
      "AzureCloud": {
        "resourceManagerEndpoint": "https://management.azure.com",
        "activeDirectoryAuthority": "https://login.microsoftonline.com"
      },
      "AzureChinaCloud": {
        "resourceManagerEndpoint": "https://management.chinacloudapi.cn",
        "activeDirectoryAuthority": "https://login.chinacloudapi.cn"
      },
      "AzureUSGovernment": {
        "resourceManagerEndpoint": "https://management.usgovcloudapi.net",
        "activeDirectoryAuthority": "https://login.microsoftonline.us"
      }
    },
    "credentialPrecedence": [
      "AzureCLI",
      "AzurePowerShell"
    ]
  }
}

사용 가능한 프로필은 다음과 같습니다.

  • AzureCloud
  • AzureChinaCloud
  • AzureUSGovernment

기본적으로 Bicep은 Azure CLI 또는 Azure PowerShell에서 인증된 사용자의 프로필 및 자격 증명을 사용합니다 AzureCloud . 이러한 프로필을 사용자 지정하거나 온-프레미스 환경에 대한 새 프로필을 포함할 수 있습니다. 같은 AzureUSGovernment국가별 클라우드 환경에 모듈을 게시하거나 복원하려면 Azure CLI에서 해당 클라우드 프로필을 선택한 경우에도 설정 "currentProfile": "AzureUSGovernment" 해야 합니다. Bicep은 Azure CLI 설정에 따라 현재 클라우드 프로필을 자동으로 확인할 수 없습니다.

Bicep은 Azure.Identity SDK 를 사용하여 인증을 수행합니다. 사용 가능한 자격 증명 형식은 다음과 같습니다.

참고 항목

vscode 내에서 Bicep 배포 명령은 인증을 위해 Azure 계정 확장을 사용합니다. bicepconfig.json의 클라우드 프로필은 사용하지 않습니다.

다음 단계