API와 Azure DevOps를 사용하여 배포 파이프라인 자동화

Microsoft Fabric 배포 파이프라인 도구를 사용하면 비즈니스 인텔리전스 팀이 패브릭 콘텐츠에 대해 효율적이고 재사용 가능한 릴리스 프로세스를 빌드할 수 있습니다.

콘텐츠의 CI/CD(연속 통합 및 지속적인 업데이트)를 위해 많은 조직에서는 Azure DevOps를 비롯한 자동화 도구를 사용합니다. Azure DevOps를 사용하는 조직은 많은 배포 파이프라인 API 작업을 지원하는 Power BI 자동화 도구 확장을 사용할 수 있습니다.

배포 파이프라인 Power BI REST API를 사용하여 패브릭을 조직의 자동화 프로세스에 통합할 수 있습니다. API를 사용하여 수행할 수 있는 작업에 대한 몇 가지 예는 다음과 같습니다.

  • 파이프라인 만들기, 원하는 단계에 작업 영역 할당, 파이프라인 배포 및 삭제 등 파이프라인을 처음부터 끝까지 관리합니다.

  • 파이프라인에 사용자를 할당하고 파이프라인에서 사용자를 할당 해제합니다.

  • Azure DevOps 또는 GitHub Actions와 같은 친숙한 DevOps 도구에 패브릭을 통합합니다.

  • 특정 시간에 자동으로 수행되도록 파이프라인 배포를 예약합니다.

  • 동시에 여러 파이프라인을 배포합니다.

  • 파이프라인 배포에 따라 계단식으로 진행합니다. 파이프라인 간에 연결된 콘텐츠가 있는 경우 일부 파이프라인이 다른 파이프라인보다 먼저 배포되도록 할 수 있습니다.

배포 파이프라인 API 함수

참고 항목

배포 파이프라인 API는 현재 Power BI 항목에 대해서만 작동합니다.

배포 파이프라인 Power BI REST API를 사용하여 다음 함수를 수행할 수 있습니다.

  • 파이프라인 정보 가져오기 - 파이프라인 및 해당 콘텐츠에 대한 정보를 검색합니다. 파이프라인 정보를 가져오면 배포 API 호출을 동적으로 빌드할 수 있습니다. 배포 상태 또는 배포 기록을 확인할 수도 있습니다.

  • 배포 - REST 호출을 통해 개발자는 Fabric 서비스에서 사용할 수 있는 모든 유형의 배포를 사용할 수 있습니다.

  • 파이프라인 만들기삭제 - 파이프라인 만들기파이프라인 삭제를 사용하여 해당 작업을 수행합니다.

  • 작업 영역 관리 - 작업 영역 할당작업 영역 할당 해제를 사용하여 특정 파이프라인 단계에 작업 영역을 할당하고 할당 해제할 수 있습니다.

  • 파이프라인 사용자 관리 - 파이프라인 사용자 삭제를 사용하면 파이프라인에서 사용자를 제거할 수 있습니다. 파이프라인 사용자 업데이트를 사용하면 파이프라인에 사용자를 추가할 수 있습니다.

API에서는 어떤 배포가 지원되나요?

API는 다음과 같은 배포 유형을 지원합니다.

  • 모두 배포 - 작업 영역의 모든 콘텐츠를 파이프라인의 다음 단계에 배포하는 단일 API 호출입니다. 이 작업의 경우 모두 배포 API를 사용합니다.

  • 선택적 배포 - 파이프라인에 보고서 또는 대시보드와 같은 특정 항목만 배포합니다. 이 작업의 경우 선택적 배포 API를 사용합니다.

  • 이전 버전 배포 - 이전 단계에 새 항목을 배포합니다. 이전 배포는 배포된 항목이 대상 단계에 아직 없는 경우에만 작동합니다. 이 작업의 경우 isBackwardDeploymentTrue로 설정하여 모두 배포 또는 선택적 배포 API를 사용합니다.

  • 앱 업데이트 - 배포 API 호출의 일부로 해당 단계와 관련된 앱의 콘텐츠를 업데이트할 수 있습니다. 업데이트된 항목은 배포가 완료된 후 최종 사용자가 자동으로 사용할 수 있습니다. 이 작업의 경우 PipelineUpdateAppSettings를 통해 모두 배포 또는 선택적 배포 API를 사용합니다.

시작하기 전에

배포 파이프라인 API를 사용하기 전에 다음이 있는지 확인합니다.

Azure DevOps와 파이프라인 통합

Azure DevOps의 릴리스 파이프라인 내에서 배포 프로세스를 자동화하려면 다음 방법 중 하나를 사용합니다.

  • PowerShell - 스크립트는 서비스 주체 또는 사용자를 사용하여 Fabric에 로그인합니다.

  • Power BI 자동화 도구 - 이 확장은 서비스 주체 또는 사용자에서 작동합니다.

다른 Power BI REST API 호출을 사용하여 .pbix를 파이프라인으로 가져오고, 데이터 원본 및 매개 변수를 업데이트하는 것과 같은 관련 작업을 완료할 수도 있습니다.

Power BI 자동화 도구 확장 사용

Power BI 자동화 도구 확장은 Azure DevOps에서 수행할 수 있는 다양한 배포 파이프라인 작업을 제공하는 오픈 소스 Azure DevOps 확장입니다. 확장 기능을 사용하면 파이프라인을 관리하기 위한 API 또는 스크립트가 필요하지 않습니다. 각 작업을 개별적으로 사용하여 파이프라인 만들기와 같은 작업을 수행할 수 있습니다. Azure DevOps 파이프라인에서 작업을 함께 사용하여 파이프라인 만들기, 파이프라인에 작업 영역 할당, 사용자 추가 및 배포와 같은 보다 복잡한 시나리오를 만들 수 있습니다.

DevOps에 Power BI 자동화 도구 확장을 추가한 후에는 서비스 연결을 만들어야 합니다. 다음 연결을 사용할 수 있습니다.

  • 서비스 주체(권장) - 이 연결은 서비스 주체사용하여 인증하며 Microsoft Entra 앱의 비밀 및 애플리케이션 ID가 필요합니다. 이 옵션을 사용하는 경우 서비스 주체에 대한 서비스 관리자 설정 이 사용하도록 설정되어 있는지 확인합니다.

  • 사용자 이름 및 암호 – 사용자 이름 및 암호를 사용하는 일반 서비스 연결로 구성됩니다. 이 연결 방법은 다단계 인증을 지원하지 않습니다. Azure DevOps에 사용자 자격 증명을 저장할 필요가 없으므로 서비스 주체 연결 방법을 사용하는 것이 좋습니다.

참고 항목

Power BI 자동화 도구 확장은 Azure DevOps 서비스 연결을 사용하여 자격 증명을 저장합니다. 자세한 내용은 Azure DevOps 서비스에 대한 자격 증명을 저장하는 방법을 참조하세요.

Azure DevOps Power BI 자동화 도구에 대한 서비스 연결을 사용하도록 설정하면 파이프라인 작업을 만들 수 있습니다. 확장에는 다음과 같은 배포 파이프라인 작업이 포함됩니다.

  • 새 파이프라인 만들기

  • 파이프라인 스테이지에 작업 영역 할당

  • 배포 파이프라인에 사용자 추가

  • 작업 영역에 사용자 추가

  • 배포 파이프라인에 콘텐츠 배포

  • 배포 파이프라인에서 작업 영역 제거

  • 파이프라인 삭제

PowerShell 샘플 액세스

다음 PowerShell 스크립트를 사용하여 여러 자동화 프로세스를 수행하는 방법을 이해할 수 있습니다. PowerShell 샘플의 텍스트를 보거나 복사하려면 이 섹션의 링크를 사용합니다.

전체 PowerBI-Developer-Samples GitHub 폴더를 다운로드할 수도 있습니다.

PowerShell 예제

이 섹션에서는 개발 단계에서 테스트 단계로 의미 체계 모델, 보고서 및 대시보드를 배포하는 예제 PowerShell 스크립트에 대해 설명합니다. 그런 다음, 스크립트는 성공적으로 배포되었는지 여부를 확인합니다.

배포를 수행하는 PowerShell 스크립트를 실행하려면 다음 구성 요소가 필요합니다. Azure 파이프라인 단계에서 이러한 파트를 작업에 추가할 수 있습니다.

  1. 로그인 - 콘텐츠를 배포하려면 서비스 주체 또는 사용자를 사용하여 Fabric에 로그인해야 합니다. Connect-PowerBIServiceAccount 명령을 사용하여 로그인합니다.

  2. 요청 본문 빌드 - 스크립트의 이 부분에서 배포할 항목(예: 보고서 및 대시보드)을 지정합니다.

    $body = @{ 
        sourceStageOrder = 0 # The order of the source stage. Development (0), Test (1).   
        datasets = @(
            @{sourceId = "Insert your dataset ID here" }
        )      
        reports = @(
            @{sourceId = "Insert your report ID here" }
        )            
        dashboards = @(
            @{sourceId = "Insert your dashboard ID here" }
        )
    
        options = @{
            # Allows creating new item if needed on the Test stage workspace
            allowCreateArtifact = $TRUE
    
            # Allows overwriting existing item if needed on the Test stage workspace
            allowOverwriteArtifact = $TRUE
        }
    } | ConvertTo-Json
    
  3. 배포 - 여기에서 배포를 수행합니다.

    $url = "pipelines/{0}/Deploy" -f "Insert you pipeline ID here"
    $deployResult = Invoke-PowerBIRestMethod -Url $url  -Method Post -Body $body | ConvertFrom-Json
    
  4. (선택 사항) 배포 완료 알림 - 배포 API가 비동기식이므로 배포가 완료되면 알리도록 스크립트를 프로그래밍할 수 있습니다.

    $url =  "pipelines/{0}/Operations/{1}" -f "Insert you pipeline ID here",$deployResult.id
    $operation = Invoke-PowerBIRestMethod -Url $url -Method Get | ConvertFrom-Json    
    while($operation.Status -eq "NotStarted" -or $operation.Status -eq "Executing")
    {
        # Sleep for 5 seconds
        Start-Sleep -s 5
        $operation = Invoke-PowerBIRestMethod -Url $url -Method Get | ConvertFrom-Json
    }
    

고려 사항 및 제한 사항

  • API를 사용한 배포에는 배포 파이프라인 사용자 인터페이스와 동일한 제한 사항이 적용됩니다.

  • 서비스 주체OAuth 자격 증명을 구성할 수 없습니다. 새 항목을 배포한 후 로그인 한 서비스 주체 는 배포된 페이지를 매긴 보고서 및 의미 체계 모델의 소유자가 됩니다. 이러한 경우 새로 고침을 완료할 수 없습니다.

  • 서비스 주체를 사용하여 데이터 흐름을 배포하는 것은 지원되지 않습니다.

  • 단일 배포에 배포할 수 있는 최대 항목 수는 300개입니다.

  • 배포 파이프라인 API는 현재 Power BI 항목만 지원합니다.

  • 2~10단계의 사용자 지정된 파이프라인 만들기는 현재 UI를 통해서만 지원됩니다.