Bicep 템플릿 파일에서 동적 형식으로 마이그레이션

Microsoft Graph Bicep 형식 "패키지"를 선택하는 두 가지 옵션이 있습니다.

  • 기본 제공 형식: Microsoft Graph Bicep 형식은 Bicep 컴파일러 NuGet 패키지에 기본 제공됩니다. 이 NuGet 패키지에는 Microsoft Graph 베타 및 v1.0 모두에 대한 Microsoft Graph 형식 정의가 포함되어 있습니다. 기본 제공 형식은 9월 이전에 사용할 수 있는 유일한 옵션이었습니다.
  • 동적 형식: 특정 버전이 지정된 Microsoft Graph Bicep 형식 리포지토리가 Microsoft 아티팩트 레지스트리 참조되고 페치됩니다. 이러한 패키지는 Bicep 컴파일러 NuGet 패키지에서 분리됩니다. 동적 형식은 9월부터만 사용할 수 있습니다.

동적 형식 기능을 사용하면 베타 및 v1.0 모두에 대해 Microsoft Graph Bicep 형식에 대한 의미 체계 버전 관리가 가능합니다. 동적 형식을 사용하면 이전 버전의 리소스 종류를 사용하는 기존 Bicep 파일의 배포에 영향을 주지 않고 기존 Microsoft Graph Bicep 리소스 형식의 향후 호환성이 손상되는 변경이 가능합니다.

공용 설명서 및 GitHub 리포지토리의 모든 예제 및 빠른 시작에서는 동적 형식을 사용합니다.

Important

기본 제공 형식은 더 이상 사용되지 않으며 2025년 1월 24일에 사용 중지됩니다. 사용 중지 날짜까지 기본 제공 형식 extension microsoftGraph은 새 동적 형식과 공존합니다. 모든 Microsoft Graph Bicep 형식 변경 내용은 새 버전의 동적 형식을 통해서만 사용할 수 있습니다.

필수 조건

  • Azure 구독이 있어야 합니다. 계정이 없는 경우 무료 계정에 만들 수 있습니다.
  • 기존 리소스를 읽거나 업데이트하거나 리소스의 소유자가 될 수 있는 최소 권한 또는 역할이 있어야 합니다. 할당해야 하는 역할을 확인하려면 태스크기본 사용자 권한별 최소 권한 역할을 참조하세요.
  • 작성 및 배포를 위한 Bicep 도구를 설치합니다. 이 빠른 시작에서는 작성을 위해 Bicep 확장과 함께 VS Code를 사용하고 배포를 위해 Azure CLI를 사용합니다. 필요한 최소 Bicep 버전은 v0.30.3입니다.
  • 대화형으로 또는 제로 터치(앱 전용) 배포를 통해 Bicep 파일을 배포할 수 있습니다.

동적 형식 사용으로 전환

다음 단계에서는 현재 Microsoft Graph v1.0에서만 기본 제공 형식을 사용하는 Bicep 파일을 업데이트하는 방법을 보여 있습니다.

  1. VS Code를 시작하고 main.bicepbicepconfig.json 파일이 포함된 폴더를 엽니다.

  2. bicepconfig.json 파일에서 Microsoft 아티팩트 레지스트리 Microsoft Graph Bicep 리소스 종류에 대한 참조를 추가합니다. 최신 또는 적절한 버전을 찾으려면 Microsoft 아티팩트 레지스트리 방문하여 "Microsoft Graph Bicep 확장"을 검색합니다.

  3. bicepconfig.json 파일을 열고 다음 블록을 추가합니다.

    • microsoftGraphV1_0는 Microsoft 아티팩트 레지스트리 패키지 버전을 참조하기 위한 사용자 정의 친숙한 확장 이름입니다.
    • 사용하려는 형식 버전으로 바꾸고 <version> Microsoft Graph v1.0에서 지원됩니다.
    {  
        "experimentalFeaturesEnabled": {  
            "extensibility": true  
        },
        "extensions": {  
            "microsoftGraphV1_0": "br:mcr.microsoft.com/bicep/extensions/microsoftgraph/v1.0:<version>"  
        }  
    }
    
  4. main.bicep에서 bicepconfig.json 파일에 정의한 확장 버전 이름을 사용하도록 선언을 업데이트extension합니다.

    extension microsoftGraphV1_0
    
    @description('Group to use')
    param groupName string = 'TestGroup-20240816'
    
    // using v1.0
    resource group 'Microsoft.Graph/groups@v1.0' existing = {
        uniqueName: groupName
    }
    
    output groupId string = group.id
    

베타 및 v1.0 Microsoft Graph 리소스 모두에 동적 형식 사용

Microsoft Graph의 기본 제공 형식은 Microsoft Graph 베타 및 v1.0 모두에 대한 형식을 제공합니다. Bicep 파일이 베타 및 v1.0 모두에서 Microsoft Graph 리소스를 선언하는 경우 다음 단계를 사용하여 현재 기본 제공 형식을 사용하는 Bicep 파일을 업데이트합니다.

  1. VS Code를 시작하고 main.bicepbicepconfig.json 파일이 포함된 폴더를 엽니다.

  2. bicepconfig.json 파일에서 Microsoft 아티팩트 레지스트리 Microsoft Graph Bicep 리소스 유형 패키지에 참조를 추가해야 합니다. 최신 또는 적절한 패키지 버전을 찾으려면 Microsoft 아티팩트 레지스트리 이동하여 "Microsoft Graph Bicep 확장"을 검색합니다.

  3. microsoft Graph v1.0 및 베타에 대해 bicepconfig.json 파일을 열고 다음 <v1.0-version> <beta-version> 을 추가하여 자리 표시자와 자리 표시자를 사용하려는 형식 버전으로 바꿉 있습니다.

    {  
        "experimentalFeaturesEnabled": {  
            "extensibility": true  
        },
        "extensions": {
            "microsoftGraphBeta": "br:mcr.microsoft.com/bicep/extensions/microsoftgraph/beta:<beta-version>",
            "microsoftGraphV1_0": "br:mcr.microsoft.com/bicep/extensions/microsoftgraph/v1.0:<v1.0-version>"   
        }
    }
    
  4. main.bicep에서 bicepconfig.json 파일에 정의한 확장 버전 이름을 사용하도록 선언을 업데이트extension microsoftGraph합니다.

    // Use both extension version declarations, to declare Microsoft Graph resources from beta and v1.0, in the same Bicep file 
    extension microsoftGraphV1_0
    extension microsoftGraphBeta
    
    @description('Group to use')
    param groupName string = 'TestGroup-20240816'
    
    @description('Apps to use')
    param appName string = 'TestApp-20240816'
    
    // using v1.0
    resource group 'Microsoft.Graph/groups@v1.0' existing = {
        uniqueName: groupName
    }
    
    // using beta
    resource app 'Microsoft.Graph/applications@beta' existing = {
        uniqueName: appName
    }
    
    output groupId string = group.id
    output appId string = app.id