Введение

Завершено

Разработка решения для автоматизации необходима, когда вам нужно воспроизводить операции управления. Автоматизация обеспечивает более быстрое и точное управление решениями.

При разработке приложений, внедряющих содержимое Power BI, вы можете автоматизировать множество возможностей, включая управление жизненным циклом, добавление новых клиентов (клиентов) в мультитенантное приложение и различные ИТ-операции.

Ниже приведены три библиотеки автоматизации, которые можно использовать:

  • Microsoft Graph

  • REST API Microsoft Power BI

  • REST API Azure Resource Manager (ARM) Power BI Embedded

Microsoft Graph

Microsoft Graph предоставляет унифицированную модель программируемости. Он предоставляет REST API и клиентскую библиотеку для доступа к данным и выполнения операций в различных облачных службах (Майкрософт). Что касается автоматизации решений Power BI, Microsoft Graph может настроить Microsoft Azure Active Directory объектов безопасности. Приложения или скрипты PowerShell могут вызывать вызовы API Graph.

В следующем сценарии показано, как установить модуль Azure AD PowerShell для Graph в PowerShell. Дополнительные сведения см. в статье Установка Azure Active Directory PowerShell для Graph.

Install-Module -Name AzureAD

Следующие блоки кода входят в первую часть сценария настройки PowerShell для настройки объектов безопасности для нового приложения, которое встраивает содержимое Power BI. В частности, в этих блоках кода показано выполнение следующих операций (в указанном порядке):

  1. Создание секрета приложения Azure AD

  2. Создание регистрации приложения Azure AD

  3. Создание субъекта-службы регистрации приложения Azure AD

  4. Назначение текущего пользователя в качестве владельца регистрации приложения Azure AD

  5. Добавление субъекта-службы в группу безопасности Приложений Power BI

Первый блок кода инициализирует две переменные. В переменной $appDisplayName хранится новое имя приложения Azure AD, а в переменной $adSecurityGroupName — имя существующей группы безопасности. В параметрах арендатора Power BI администратор Power BI уже назначил эту группу безопасности при разрешенном использовании субъектов-служб.

# The new app display name
$appDisplayName = "My app"

# The name of an existing security group
$adSecurityGroupName = "Power BI Apps"

Следующий блок кода подключается к учетной записи, прошедшей проверку подлинности, для использования запросов командлетов Azure AD. Он также инициализирует переменные, предоставив полезные сведения об арендаторе и текущей учетной записи пользователя. Эти факты используются последующими блоками кода.

$authResult = Connect-AzureAD

$tenantId = $authResult.TenantId.ToString()
$tenantDomain = $authResult.TenantDomain

$userAccountId = $authResult.Account.Id
$user = Get-AzureADUser -ObjectId $userAccountId

Следующий блок кода создает секрет приложения, который становится паролем для регистрации приложения Azure AD. Секрет приложения генерируется на основе GUID и действует в течение одного года с текущей даты.

# Generate an app secret
$newGuid = New-Guid
$appSecret = ([System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes(($newGuid))))+"="
$startDate = Get-Date
$passwordCredential = New-Object -TypeName Microsoft.Open.AzureAD.Model.PasswordCredential
$passwordCredential.StartDate = $startDate
$passwordCredential.EndDate = $startDate.AddYears(1)
$passwordCredential.KeyId = $newGuid
$passwordCredential.Value = $appSecret

Следующий блок кода создает регистрацию приложения Azure AD с помощью секрета приложения.

# Create an Azure AD app
$replyUrl = "https://localhost:5001/signin-oidc"

$aadApplication = New-AzureADApplication `
    -DisplayName $appDisplayName `
    -PublicClient $false `
    -AvailableToOtherTenants $false `
    -ReplyUrls @($replyUrl) `
    -Homepage $replyUrl `
    -PasswordCredentials $passwordCredential

Следующий блок кода создает субъект-службу регистрации приложения. Он также назначает текущего пользователя владельцем и добавляет субъект-службу в группу безопасности.

# Create the app's service principal
$appId = $aadApplication.AppId
$appObjectId = $aadApplication.ObjectId
$serviceServicePrincipal = New-AzureADServicePrincipal -AppId $appId
$serviceServicePrincipalObjectId = $serviceServicePrincipal.ObjectId

# Assign the current user as the app owner
Add-AzureADApplicationOwner -ObjectId $aadApplication.ObjectId -RefObjectId $user.ObjectId

# Add the service principal to the security group
Add-AzureADGroupMember -ObjectId $($adSecurityGroup.ObjectId) `
    -RefObjectId $($serviceServicePrincipalObjectId)

Следующие переменные скрипта содержат полезную информацию для вашего приложения. Эти значения необходимо записать и добавить в файл конфигурации приложения.

  • $tenantDomain — требуется для проверки подлинности в Azure AD.

  • $tenantId — требуется для проверки подлинности в Azure AD.

  • $appId — требуется для создания маркера доступа Azure AD.

  • $appSecret — требуется для создания маркера доступа Azure AD. Однако секреты не следует развертывать вместе с приложением. Вместо этого доступ к ним должен осуществляться через контролируемые средства, такие как переменные среды или Microsoft Azure Key Vault. Дополнительные сведения см. в статье Надежное хранение секретов приложений при разработке в ASP.NET Core.

В переменной $serviceServicePrincipalObjectId хранится ссылка на новый субъект-службу. В следующем разделе эта переменная будет использоваться в продолжении сценария.

REST API Power BI

REST API Power BI предоставляет конечные точки службы для встраивания, администрирования и использования ресурсов, а также управления ими. В отношении автоматизации решений Power BI с помощью REST API Power BI можно выполнять следующие задачи:

  • Создание рабочих областей

  • Назначение рабочей области для емкости

  • Настройка доступа к рабочей области

  • Создание и настройка содержимого Power BI

В следующем сценарии показано, как установить модуль управления Power BI в PowerShell. Дополнительные сведения см. в статье Командлеты Microsoft Power BI для Windows PowerShell и PowerShell Core.

Install-Module -Name MicrosoftPowerBIMgmt

Следующие блоки кода составляют вторую часть сценария установки PowerShell. Это продолжение сценария, описанного в предыдущем разделе. Блоки кода настраивают среду Power BI. В частности, в них показано, как выполнять следующие задачи:

  • Создайте рабочую область.

  • Добавление субъект-службы в качестве администратора рабочей области.

  • Импорт файла Power BI Desktop для создания набора данных и отчета.

Первый блок кода инициализирует две переменные. В переменной $workspaceName хранится новое имя рабочей области, а в переменной $pbixFilePath — путь к файлу Power BI Desktop.

# The new workspace name
$workspaceName = "Sales Reporting"

# The file path to a Power BI Desktop file (.pbix)
$pbixFilePath = "D:\Sales Analysis.pbix"

Следующий блок кода подключается к службе Power BI с помощью учетной записи с проверкой подлинности. Затем пытается получить ссылку на рабочую область. Если попытка не удалась (поскольку рабочей области не существует), он создает рабочую область. Наконец, переменная $workspaceId хранит идентификатор рабочей области (именуемый GroupID).

Connect-PowerBIServiceAccount

# Create the workspace (if it doesn't already exist)
$workspace = Get-PowerBIWorkspace -Name $workspaceName

if (!$workspace) {
    $workspace = New-PowerBIWorkspace -Name $workspaceName
}

$workspaceId = $workspace.Id

Следующий блок кода добавляет субъект-службу в качестве администратора рабочей области.

# Add the service principal as a workspace admin
Add-PowerBIWorkspaceUser -Scope Organization `
    -Id $workspaceId `
    -AccessRight Admin `
    -Identifier $serviceServicePrincipalObjectId `
    -PrincipalType App

Следующий блок кода импортирует файл Power BI Desktop в новую рабочую область.

# Import the Power BI Desktop file
$import = New-PowerBIReport -Path $pbixFilePath -Workspace $workspace -ConflictAction CreateOrOverwrite

Переменная $workspaceId содержит полезную информацию для вашего приложения. Вы должны записать значение переменной и добавить его в файл конфигурации приложения. С помощью этой переменной можно перечислить артефакты рабочей области для получения свойств, необходимых для их внедрения.

REST API ARM Power BI Embedded

REST API Power BI Embedded ARM позволяет создавать, извлекать, обновлять и удалять Power BI Embedded емкости.

Примечание

Вы не можете использовать этот API для управления емкостями Power BI Premium. Дополнительные сведения см. в статье Настройка и управление емкостями в Power BI Premium.

Для масштабирования ресурса емкости можно использовать операцию Update . например, при внезапном увеличении спроса на вычислительные ресурсы. Другие операции приостанавливают или возобновляют выполнение емкости.

Примечание

Дополнительные сведения об управлении ресурсами емкости и масштабировании см. в модуле Выбор продукта встроенной аналитики Power BI .

Дополнительные сведения см. в статье Справочные материалы по REST API Azure Resource Manager Power BI Embedded.