다음을 통해 공유


Bicep 모듈에 대한 프라이빗 레지스트리 만들기

조직 내에서 모듈을 공유하기 위해 프라이빗 모듈 레지스트리를 만들 수 있습니다. 그런 다음 해당 레지스트리에 모듈을 게시하고 모듈을 배포해야 하는 사용자에게 읽기 권한을 부여할 수 있습니다. 모듈이 레지스트리에서 공유된 후 Bicep 파일에서 참조할 수 있습니다. 공용 모듈을 사용하려면 Bicep 모듈을 참조하세요.

모듈 레지스트리를 사용하려면 Bicep CLI 버전 0.4.1008 이상이 있어야 합니다. Azure CLI와 함께 사용하려면 버전 2.31.0 이상도 있어야 합니다. Azure PowerShell과 함께 사용하려면 버전 7.0.0 이상도 있어야 합니다.

학습 리소스

단계별 지침을 통해 매개 변수에 대해 알아보려면 프라이빗 레지스트리를 사용하여 Bicep 모듈 공유를 참조하세요.

프라이빗 레지스트리 구성

Bicep 레지스트리는 ACR(Azure Container Registry)에 호스트됩니다. 다음 단계를 사용하여 모듈에 대한 레지스트리를 구성합니다.

  1. 컨테이너 레지스트리가 이미 있는 경우 사용할 수 있습니다. 컨테이너 레지스트리를 만들어야 하는 경우 빠른 시작: Bicep 파일을 사용하여 컨테이너 레지스트리 만들기를 참조하세요.

    모듈 레지스트리에 사용할 수 있는 레지스트리 SKU를 사용할 수 있습니다. 레지스트리 지역 복제는 사용자에게 로컬 존재 또는 핫 백업으로 제공합니다.

  2. 로그인 서버 이름을 가져옵니다. Bicep 파일에서 레지스트리에 연결할 때 이 이름이 필요합니다. 로그인 서버 이름의 형식은 <registry-name>.azurecr.io입니다.

    로그인 서버 이름을 가져오려면 Get-AzContainerRegistry를 사용합니다.

    Get-AzContainerRegistry -ResourceGroupName "<resource-group-name>" -Name "<registry-name>"  | Select-Object LoginServer
    
  3. 레지스트리에 모듈을 게시하려면 이미지를 푸시할 수 있는 권한이 있어야 합니다. 레지스트리에 모듈을 게시하려면 이미지를 할 수 있는 권한이 있어야 합니다. 적절한 액세스 권한을 부여하는 역할에 대한 자세한 내용은 Azure Container Registry 역할 및 권한을 참조하세요.

  4. 모듈을 배포하는 데 사용하는 계정 유형에 따라 사용되는 자격 증명을 사용자 지정해야 할 수 있습니다. 이러한 자격 증명은 레지스트리에서 모듈을 가져오는 데 필요합니다. 기본적으로 자격 증명은 Azure CLI 또는 Azure PowerShell에서 가져옵니다. bicepconfig.json 파일에서 자격 증명을 가져오기 위한 우선 순위를 사용자 지정할 수 있습니다. 자세한 내용은 모듈 복원을 위한 자격 증명을 참조하세요.

Important

프라이빗 컨테이너 레지스트리는 필요한 액세스 권한이 있는 사용자만 사용할 수 있습니다. 그러나 공용 인터넷을 통해 액세스할 수 있습니다. 보안을 강화하기 위해 프라이빗 엔드포인트를 통해 액세스해야 할 수 있습니다. Azure Private Link를 사용하여 Azure 컨테이너 레지스트리에 비공개로 연결을 참조하세요.

프라이빗 컨테이너 레지스트리에는 azureADAuthenticationAsArmPolicy 정책이 enabled로 설정되어 있어야 합니다. azureADAuthenticationAsArmPolicydisabled로 설정된 경우 모듈을 게시할 때 401(권한 없음) 오류 메시지가 표시됩니다. Azure Container Registry는 조건부 액세스 정책을 도입합니다.를 참조하세요.

레지스트리에 파일 게시

컨테이너 레지스트리를 설정한 후 파일을 게시할 수 있습니다. publish 명령을 사용하여 모듈로 사용할 Bicep 파일을 제공합니다. 레지스트리에서 모듈의 대상 위치를 지정합니다. 게시 명령은 레지스트리에 저장되는 ARM 템플릿을 만듭니다. 즉, 다른 로컬 모듈을 참조하는 Bicep 파일을 게시하는 경우 이러한 모듈은 하나의 JSON 파일로 완전히 확장되어 레지스트리에 게시됩니다.

Publish-AzBicepModule -FilePath ./storage.bicep -Target br:exampleregistry.azurecr.io/bicep/modules/storage:v1 -DocumentationUri https://www.contoso.com/exampleregistry.html

Bicep CLI 버전 0.27.1 이상에서는 컴파일된 JSON 템플릿 외에도 Bicep 소스 코드가 포함된 모듈을 게시할 수 있습니다. Bicep 소스 코드가 포함된 모듈을 레지스트리에 게시하는 경우 Visual Studio Code에서 F12를 눌러(정의로 이동) Bicep 코드를 볼 수 있습니다. Bicep 파일을 보려면 Bicep 확장 버전 0.27 이상이 필요합니다.

Publish-AzBicepModule -FilePath ./storage.bicep -Target br:exampleregistry.azurecr.io/bicep/modules/storage:v1 -DocumentationUri https://www.contoso.com/exampleregistry.html -WithSource

원본 스위치를 사용하면 매니페스트에 다른 계층이 표시됩니다.

소스가 있는 bicep 모듈 레지스트리의 스크린샷.

Bicep 모듈이 프라이빗 레지스트리에서 모듈을 참조하는 경우 ACR 엔드포인트가 표시됩니다. 전체 엔드포인트를 숨기려면 프라이빗 레지스트리에 대한 별칭을 구성하면 됩니다.

레지스트리에서 파일 보기

포털에서 게시된 모듈을 보려면 다음을 수행합니다.

  1. Azure Portal에 로그인합니다.

  2. 컨테이너 레지스트리를 검색합니다.

  3. 레지스트리를 선택합니다.

  4. 왼쪽 메뉴에서 Services ->리포지토리를 선택합니다.

  5. 모듈 경로(리포지토리)를 선택합니다. 앞의 예제에서 모듈 경로 이름은 bicep/modules/storage입니다.

  6. 태그를 선택합니다. 앞의 예제에서 태그는 v1입니다.

  7. 아티팩트 참조는 Bicep 파일에서 사용하는 참조와 일치합니다.

    Bicep 모듈 레지스트리 아티팩트 참조

이제 Bicep 파일에서 레지스트리의 파일을 참조할 준비가 되었습니다. 외부 모듈을 참조하는 데 사용할 구문의 예는 Bicep 모듈을 참조하세요.


Bicep 레지스트리 파일 관련 작업

원격 레지스트리에서 호스트되는 bicep 파일을 사용하는 경우 로컬 컴퓨터가 레지스트리와 상호 작용하는 방식을 이해하는 것이 중요합니다. 레지스트리에 대한 참조를 처음 선언하면 로컬 편집기는 Azure Container Registry와 통신하고 레지스트리 사본을 로컬 캐시에 다운로드하려고 시도합니다.

로컬 캐시는 다음 위치에 있습니다.

  • Windows

    %USERPROFILE%\.bicep\br\<registry-name>.azurecr.io\<module-path\<tag>
    
  • Linux

    /home/<username>/.bicep
    
  • Mac에서

    ~/.bicep
    

로컬 컴퓨터는 레지스트리 참조가 포함된 지정된 파일을 사용하여 restore을(를) 실행할 때까지 원격 레지스트리에 대한 변경 내용을 인식할 수 있습니다.

az bicep restore --file <bicep-file> [--force]

자세한 내용은 restore 명령을 참조하세요.

다음 단계