Введение
Разработка решения для автоматизации необходима, когда вам нужно воспроизводить операции управления. Автоматизация обеспечивает более быстрое и точное управление решениями.
При разработке приложений, внедряющих содержимое 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. В частности, в этих блоках кода показано выполнение следующих операций (в указанном порядке):
Создание секрета приложения Azure AD
Создание регистрации приложения Azure AD
Create субъекта-службы регистрации приложения Azure AD
Назначение текущего пользователя в качестве владельца регистрации приложения Azure AD
Добавление субъекта-службы в группу безопасности Приложений 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.
Для масштабирования ресурса емкости можно использовать операцию Обновления . например, при внезапном увеличении спроса на вычислительные ресурсы. Другие операции приостанавливают или возобновляют выполнение емкости.
Примечание
Сведения об управлении ресурсами емкости и масштабировании см. в модуле Выбор продукта встроенной аналитики Power BI .
Дополнительные сведения см. в статье Справочные материалы по REST API Azure Resource Manager Power BI Embedded.