Giriş

Tamamlandı

Yönetim işlemlerini yeniden oluşturmanız gerektiğinde otomasyon çözümü geliştirmek yararlıdır. Otomasyon, daha hızlı ve daha doğru çözüm yönetimi sağlar.

Power BI içeriği ekleyen uygulamalar geliştirirken yaşam döngüsü yönetimi, çok kiracılı bir uygulamaya yeni kiracılar (müşteriler) ekleme ve çeşitli BT işlemleri gibi birçok fırsatı otomatikleştirebilirsiniz.

Kullanabileceğiniz üç otomasyon kitaplığı aşağıdadır:

  • Microsoft Graph

  • Microsoft Power BI REST API

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

Microsoft Graph

Microsoft Graph birleşik bir programlama modeli sağlar. Verilere erişmek ve çeşitli Microsoft bulut hizmetlerinde işlemler gerçekleştirmek için REST API'leri ve bir istemci kitaplığını kullanıma sunar. Microsoft Graph, Power BI çözümlerini otomatikleştirmeyle ilgili olarak Microsoft Azure Active Directory güvenlik nesneleri ayarlayabilir. Uygulamanız veya PowerShell betikleriniz Graph API çağrıları çağırabilir.

Aşağıdaki betikte, PowerShell'de Graph için Azure AD PowerShell modülünün nasıl yükleneceği gösterilmektedir. Daha fazla bilgi için bkz. Graph için Azure Active Directory PowerShell'i yükleme.

Install-Module -Name AzureAD

Aşağıdaki kod blokları, Power BI içeriği ekleyen yeni bir uygulama için güvenlik nesneleri ayarlamak üzere PowerShell kurulum betiğinin ilk bölümüne katkıda bulunur. Özellikle, kod blokları aşağıdaki eylemlerin nasıl tamamlanmasını gösterir (sırayla):

  1. Azure AD uygulama gizli dizisi oluşturma

  2. Azure AD uygulama kaydı oluşturma

  3. Azure AD uygulama kaydının hizmet sorumlusunu oluşturma

  4. Geçerli kullanıcıyı Azure AD uygulama kaydı sahibi olarak atama

  5. Hizmet sorumlusunu Power BI Apps güvenlik grubuna ekleme

İlk kod bloğu iki değişken başlatır. $appDisplayName değişkeni yeni Azure AD uygulama adını, $adSecurityGroupName değişken ise mevcut bir güvenlik grubunun adını depolar. Power BI kiracı ayarlarında, hizmet sorumlularının kullanımına izin verilirken bir Power BI yöneticisi bu güvenlik grubunu zaten atamıştır.

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

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

Sonraki kod bloğu, Azure AD cmdlet isteklerini kullanmak için kimliği doğrulanmış bir hesaba bağlanır. Ayrıca kiracı ve geçerli kullanıcı hesabıyla ilgili yararlı bilgilerle değişkenleri başlatır. Bu olgular sonraki kod blokları tarafından kullanılır.

$authResult = Connect-AzureAD

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

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

Sonraki kod bloğu, Azure AD uygulama kaydının parolası haline gelen bir uygulama gizli dizisi oluşturur. Uygulama gizli dizisi bir GUID'yi temel alır ve geçerli tarihten itibaren bir yıl geçerlidir.

# 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

Sonraki kod bloğu, uygulama gizli dizisini kullanarak bir Azure AD uygulama kaydı oluşturur.

# 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

Sonraki kod bloğu, uygulama kaydının hizmet sorumlusunu oluşturur. Ayrıca geçerli kullanıcıyı sahip olarak atar ve hizmet sorumlusunu güvenlik grubuna ekler.

# 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)

Aşağıdaki betik değişkenleri uygulamanız için yararlı bilgiler içerir. Değerleri yazılmalıdır ve uygulamanın .config dosyasına eklenmelidir.

  • $tenantDomain- Azure AD kimlik doğrulaması için gereklidir.

  • $tenantId- Azure AD kimlik doğrulaması için gereklidir.

  • $appId- Azure AD erişim belirteci oluşturmak için gereklidir.

  • $appSecret- Azure AD erişim belirteci oluşturmak için gereklidir. Ancak gizli dizilerin uygulamayla dağıtılmaması gerekir. Bunun yerine ortam değişkenleri veya Microsoft Azure Key Vault gibi denetimli araçlar aracılığıyla erişilmelidir. Daha fazla bilgi için bkz. ASP.NET Core geliştirme aşamasında uygulama gizli dizilerinin güvenli bir şekilde depolanması.

değişkeni, $serviceServicePrincipalObjectId yeni hizmet sorumlusuna bir başvuru depolar. Sonraki konu başlığında, betiğin devamı bu değişkeni kullanacaktır.

Power BI REST API

Power BI REST API'sinde ekleme, yönetim, idare ve kullanıcı kaynakları için hizmet uç noktaları sağlanır. Power BI çözümlerini otomatikleştirmeyle ilgili olarak, Power BI REST API aşağıdaki görevleri tamamlayabilir:

  • Çalışma alanı oluşturma

  • Bir kapasiteye çalışma alanı atama

  • Çalışma alanı erişimini ayarlama

  • Power BI içeriği oluşturma ve ayarlama

Aşağıdaki betikte PowerShell'de Power BI yönetim modülünün nasıl yükleneceği gösterilmektedir. Daha fazla bilgi için bkz. Windows PowerShell ve PowerShell Core için Microsoft Power BI cmdlet'leri.

Install-Module -Name MicrosoftPowerBIMgmt

Aşağıdaki kod blokları, PowerShell kurulum betiğinin ikinci bölümüne katkıda bulunur. Bu, önceki konu başlığında açıkladığımız betiğin devamıdır. Kod blokları Power BI ortamını ayarlar. Özellikle, aşağıdaki görevlerin nasıl tamamlanmasını gösterirler:

  • Çalışma alanı oluşturma.

  • Çalışma alanı yöneticisi olarak bir hizmet sorumlusu ekleyin.

  • Veri kümesi ve rapor oluşturmak için bir Power BI Desktop dosyasını içeri aktarabilirsiniz.

İlk kod bloğu iki değişken başlatır. $workspaceName değişkeni yeni çalışma alanı adını depolar ve $pbixFilePath değişken dosya yolunu bir Power BI Desktop dosyasına depolar.

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

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

Sonraki kod bloğu, kimliği doğrulanmış bir hesapla Power BI hizmeti bağlanır. Ardından, çalışma alanına bir başvuru almayı dener. Deneme başarısız olursa (çalışma alanı mevcut olmadığından), çalışma alanını oluşturur. Son olarak değişken çalışma $workspaceId alanı kimliğini (GroupID olarak adlandırılır) depolar.

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

Sonraki kod bloğu, hizmet sorumlusunu çalışma alanı yöneticisi olarak ekler.

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

Sonraki kod bloğu bir Power BI Desktop dosyasını yeni çalışma alanına aktarır.

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

$workspaceId değişkeni uygulamanız için yararlı bilgiler içerir. Değişken değerini yazmalı ve uygulamanın .config dosyasına eklemelisiniz. Çalışma alanı yapıtlarını eklemek için gereken özellikleri almak üzere listelemek için değişkenini kullanabilirsiniz.

ARM REST API'Power BI Embedded

Power BI Embedded ARM REST API Power BI Embedded kapasiteleri oluşturmanıza, almanıza, güncelleştirmenize ve silmenize olanak tanır.

Not

Bu API'yi Power BI Premium kapasiteleri yönetmek için kullanamazsınız. Daha fazla bilgi için bkz. Power BI Premium kapasitelerini yapılandırma ve yönetme.

Kapasite kaynağını ölçeklendirmek için Güncelleştirme işlemini kullanabilirsiniz; Örneğin, hesaplama kaynaklarında ani bir talep artışı gerçekleştiğinde. Diğer işlemler kapasiteyi askıya alır veya sürdürür.

Not

Kapasite kaynaklarını yönetme ve ölçeklendirme hakkında bilgi edinmek için Bkz. Power BI tümleşik analiz ürün modülü seçme.

Daha fazla bilgi için bkz. Azure Resource Manager REST API başvurusu Power BI Embedded.