Copilot-Credits finanzieren Agents und die Copilot-Nutzung, die Sie mit Copilot Studio in Ihren Power Platform-Umgebungen erstellen. Als Administrator ordnen Sie Guthaben den Umgebungen zu, die sie benötigen, und entscheiden, was passiert, wenn eine Umgebung nicht mehr über die zugeordneten Guthaben verfügt. Zusätzlich zur Power Platform Admin Center-Oberfläche können Sie Copilot Kreditzuweisungen mit Code mithilfe der Power Platform-API und der Verwaltungs-SDKs (Administrator) verwalten. Die Automatisierung der Kreditzuweisung ist nützlich, wenn Sie Kapazität über viele Umgebungen verteilen, das Überlastungsverhalten standardisieren oder Zuordnungen als Teil einer Bereitstellungspipeline verwalten.
In diesem Tutorial lernen Sie Folgendes:
- Verwalten sie Copilot Credits im Power Platform Admin Center.
- Authentifizieren Sie sich mithilfe der Power Platform-API.
- Sehen Sie sich die verfügbaren Copilot-Guthaben zur Zuweisung an.
- Weisen Sie Copilot-Credits einer Umgebung zu.
- Legen Sie fest, ob eine Umgebung auf die Mandantenkapazität zurückgreift.
Copilot Credits werden durch die Berechtigungs-ID MCSMessages dargestellt und über die licensing/allocationsV2 Vorgänge der Power Platform-API verwaltet. Der allocationsV2/availability Vorgang meldet, wie viel Kapazität zur Zuordnung verfügbar ist, und der allocationsV2 Vorgang schreibt die Zuordnung einer Umgebung. Alle programmgesteuerten Beispiele in diesem Artikel verwenden DIE API-Version 2024-10-01.
Jede Umgebungszuordnung enthält eine Reihe von Durchsetzungsregeln , die bestimmen, was passiert, wenn die Umgebung ihre zugewiesenen Gutschriften verbraucht. Die Option Aus der verfügbaren Kapazität meines Mandanten beziehen im Admin Center entspricht der TenantPool-Durchsetzungsregel: Wenn sie aktiviert ist, greift die Umgebung weiterhin auf nicht zugewiesene Mandantenkapazität zurück, sobald ihre eigene Zuweisung aufgebraucht ist; wenn sie deaktiviert ist, ist die Umgebung auf ihre Zuweisung begrenzt.
Warning
Wenn eine veröffentlichte Umgebungsgruppenregel für Aus der in meinem Mandanten verfügbaren Kapazität schöpfen gilt, können Sie die Einstellung für eine bestimmte Umgebung nicht außer Kraft setzen. Updates über das Power Platform Admin Center, die Power Platform-API oder Verwaltungs-SDKs werden mit dem TenantPoolLockedByPolicy Fehler abgelehnt. Ändern und veröffentlichen Sie die Regel für die Umgebungsgruppe, oder entfernen Sie die Umgebung aus der Gruppe , um die Einstellung unabhängig zu verwalten. Nach dem Entfernen behält die Umgebung den zuletzt von der Gruppe angewendeten Wert bei, die Einstellung kann jedoch bearbeitet werden. Weitere Informationen zu verfügbaren Gruppenregeln finden Sie unter "Regeln für Umgebungsgruppen".
Voraussetzungen
Eine App-Registrierung, die für die Power Platform-API konfiguriert ist. Beachten Sie die Anwendungs-ID (Client-ID) und die Verzeichnis-ID (Mandant) der App-Registrierung.
Berechtigung zum Verwalten von Lizenzen und Kapazitäten. Melden Sie sich als Benutzer mit der Rolle "Power Platform-Administrator " oder "Globaler Administrator " oder einer entsprechenden Rolle an, die Lizenzierung und Kapazität verwalten kann.
Installieren Sie für die SDK-Beispiele das SDK, das monatlich in seiner öffentlichen Galerie veröffentlicht wird:
dotnet add package Microsoft.PowerPlatform.Management
pip install powerplatform-management
Copilot-Kreditzuweisungen verwalten
In diesem Abschnitt wird derselbe durchgängige Ablauf gezeigt – prüfen Sie, was verfügbar ist, weisen Sie einer Umgebung Credits zu, und steuern Sie, ob die Umgebung Mandantenkapazität nutzt – im Power Platform Admin Center und jeweils in den einzelnen SDKs. Verwenden Sie die Registerkarten, um zwischen dem Admin Center und Ihrer bevorzugten Sprache zu wechseln.
Melden Sie sich im Power Platform Admin Center an.
Wählen Sie im Navigationsbereich Lizenzierung aus.
Wählen Sie unter "Produkte" Copilot Studio und dann "Copilot Guthaben verwalten" aus.
Wählen Sie die Umgebung aus, die Sie verwalten möchten. Verwenden Sie das Suchfeld , um eine Umgebung anhand des Namens zu finden.
Geben Sie unter Kapazität zuweisen die Anzahl der Copilot-Credits ein, die der Umgebung zugewiesen werden sollen. Im Bereich wird gezeigt, wie viele Credits verbraucht werden, wie viele bereits zugeordnet sind und wie viele von Ihrem Mandanten zugewiesen werden können.
Wählen Sie unter Kapazitätsüberschreitungen die Option Auf die verfügbare Kapazität in meinem Mandanten zurückgreifen aus oder heben Sie die Auswahl auf, um zu steuern, was passiert, wenn die Umgebung ihre zugewiesene Kapazität ausschöpft:
-
Ausgewählt: Nachdem die der Umgebung zugewiesenen Credits verbraucht sind, greift sie weiterhin auf die nicht zugewiesene Kapazität Ihres Mandanten zurück.
-
Ausgeschöpft: Die Umgebung ist auf ihre Zuweisung begrenzt und verbraucht nichts mehr, wenn diese ausgeschöpft ist.
Wählen Sie "Speichern" aus.
Im folgenden Beispiel wird interaktiv als aktueller Benutzer angemeldet, die zur Zuweisung verfügbaren Copilot-Credits abgerufen, Credits einer Umgebung zugewiesen und die Option Aus der verfügbaren Kapazität in meinem Mandanten beziehen deaktiviert, sodass die Umgebung auf ihre Zuweisung begrenzt wird.
# Requires the MSAL.PS module: Install-Module MSAL.PS -Scope CurrentUser
Import-Module "MSAL.PS"
$clientId = "<application (client) ID of your app registration>"
$tenantId = "<directory (tenant) ID>"
$environmentId = "<environment ID>"
$apiBaseUrl = "https://api.powerplatform.com"
$apiVersion = "2024-10-01"
# Sign in interactively and request a token for the Power Platform API
$auth = Get-MsalToken -ClientId $clientId -TenantId $tenantId -Scope "https://api.powerplatform.com/.default" -Interactive
$headers = @{ Authorization = "Bearer $($auth.AccessToken)" }
# 1. View the Copilot Credits available to allocate for the environment
$filter = [uri]::EscapeDataString("environmentId eq '$environmentId' and EntitlementId in ('MCSMessages')")
$availability = Invoke-RestMethod -Method Get `
-Uri "$apiBaseUrl/licensing/allocationsV2/availability?api-version=$apiVersion&`$filter=$filter" `
-Headers $headers
$availability.entitlementAllocationsAvailable |
ForEach-Object { Write-Host "$($_.entitlementId): $($_.availableQuantity) available" }
# 2. Allocate Copilot Credits to the environment and turn off tenant capacity draw
$allocationBody = @{
scope = @{ environmentId = $environmentId }
allocatedEntitlements = @(
@{
entitlementId = "MCSMessages"
allocation = @{ quantity = 5000 }
enforcementRules = @(
# Disable TenantPool so the environment is capped at its allocation.
# Set enabled = $true to let the environment draw from tenant capacity.
@{ ruleType = "TenantPool"; enabled = $false }
)
}
)
} | ConvertTo-Json -Depth 10
Invoke-RestMethod -Method Put `
-Uri "$apiBaseUrl/licensing/allocationsV2?api-version=$apiVersion" `
-Headers $headers -ContentType "application/json" -Body $allocationBody
Write-Host "Updated Copilot credit allocation for environment $environmentId"
Im folgenden Beispiel wird interaktiv unter Benutzung der Client-ID Ihrer App-Registrierung angemeldet, die zur Zuweisung verfügbaren Copilot-Credits abgerufen, Credits einer Umgebung zugewiesen und die Option Aus der verfügbaren Kapazität in meinem Mandanten beziehen deaktiviert, sodass die Umgebung auf ihre Zuweisung begrenzt wird.
using Microsoft.PowerPlatform.Management;
using Microsoft.PowerPlatform.Management.Models;
// Create an interactive client using your app registration's client ID.
// A browser window opens for sign-in.
var factory = new ServiceClientFactory();
var client = factory.Create("YOUR_CLIENT_ID");
var environmentId = "<environment ID>";
var apiVersion = "2024-10-01";
// 1. View the Copilot Credits available to allocate for the environment
var availability = await client.Licensing.AllocationsV2.Availability.GetAsync(config =>
{
config.QueryParameters.ApiVersion = apiVersion;
config.QueryParameters.Filter =
$"environmentId eq '{environmentId}' and EntitlementId in (MCSMessages)";
});
foreach (var entitlement in availability.EntitlementAllocationsAvailable)
{
Console.WriteLine($"{entitlement.EntitlementId}: {entitlement.AvailableQuantity} available");
}
// 2. Allocate Copilot Credits to the environment and turn off tenant capacity draw
var request = new AllocationPutRequestModel
{
Scope = new ScopeModel { EnvironmentId = environmentId },
AllocatedEntitlements = new List<EntitlementAllocationModel>
{
new EntitlementAllocationModel
{
EntitlementId = "MCSMessages",
Allocation = new AllocationModel { Quantity = 5000 },
EnforcementRules = new List<AllocationEnforcementRule>
{
// Disable TenantPool so the environment is capped at its allocation.
// Set Enabled = true to let the environment draw from tenant capacity.
new AllocationEnforcementRule
{
RuleType = AllocationEnforcementRuleTypes.TenantPool,
Enabled = false
}
}
}
}
};
await client.Licensing.AllocationsV2.PutAsync(request, config =>
{
config.QueryParameters.ApiVersion = apiVersion;
});
Console.WriteLine($"Updated Copilot credit allocation for environment {environmentId}");
Im folgenden Beispiel wird interaktiv unter Benutzung der Client-ID Ihrer App-Registrierung angemeldet, die zur Zuweisung verfügbaren Copilot-Credits abgerufen, Credits einer Umgebung zugewiesen und die Option Aus der verfügbaren Kapazität in meinem Mandanten beziehen deaktiviert, sodass die Umgebung auf ihre Zuweisung begrenzt wird.
import asyncio
from azure.identity import InteractiveBrowserCredential
from kiota_abstractions.base_request_configuration import RequestConfiguration
from kiota_authentication_azure.azure_identity_authentication_provider import (
AzureIdentityAuthenticationProvider,
)
from kiota_http.httpx_request_adapter import HttpxRequestAdapter
from mspp_management.service_client_base import ServiceClientBase
from mspp_management.licensing.allocations_v2.allocations_v2_request_builder import (
AllocationsV2RequestBuilder,
)
from mspp_management.licensing.allocations_v2.availability.availability_request_builder import (
AvailabilityRequestBuilder,
)
from mspp_management.models.allocation_put_request_model import AllocationPutRequestModel
from mspp_management.models.scope_model import ScopeModel
from mspp_management.models.entitlement_allocation_model import EntitlementAllocationModel
from mspp_management.models.allocation_model import AllocationModel
from mspp_management.models.allocation_enforcement_rule import AllocationEnforcementRule
from mspp_management.models.allocation_enforcement_rule_types import (
AllocationEnforcementRuleTypes,
)
API_VERSION = "2024-10-01"
async def manage_copilot_credits(client: ServiceClientBase, environment_id: str):
# 1. View the Copilot Credits available to allocate for the environment
query_params = AvailabilityRequestBuilder.AvailabilityRequestBuilderGetQueryParameters(
api_version=API_VERSION,
filter=f"environmentId eq '{environment_id}' and EntitlementId in (MCSMessages)",
)
availability = await client.licensing.allocations_v2.availability.get(
request_configuration=RequestConfiguration(query_parameters=query_params)
)
for entitlement in availability.entitlement_allocations_available:
print(f"{entitlement.entitlement_id}: {entitlement.available_quantity} available")
# 2. Allocate Copilot Credits to the environment and turn off tenant capacity draw
# Disable TenantPool so the environment is capped at its allocation.
# Set enabled = True to let the environment draw from tenant capacity.
tenant_pool_rule = AllocationEnforcementRule()
tenant_pool_rule.rule_type = AllocationEnforcementRuleTypes.TenantPool
tenant_pool_rule.enabled = False
entitlement = EntitlementAllocationModel()
entitlement.entitlement_id = "MCSMessages"
entitlement.allocation = AllocationModel()
entitlement.allocation.quantity = 5000
entitlement.enforcement_rules = [tenant_pool_rule]
request = AllocationPutRequestModel()
request.scope = ScopeModel()
request.scope.environment_id = environment_id
request.allocated_entitlements = [entitlement]
put_params = AllocationsV2RequestBuilder.AllocationsV2RequestBuilderPutQueryParameters(
api_version=API_VERSION,
)
await client.licensing.allocations_v2.put(
request, request_configuration=RequestConfiguration(query_parameters=put_params)
)
print(f"Updated Copilot credit allocation for environment {environment_id}")
async def main():
# Sign in interactively using your app registration's client ID.
credential = InteractiveBrowserCredential(client_id="YOUR_CLIENT_ID")
auth_provider = AzureIdentityAuthenticationProvider(
credentials=credential,
scopes=["https://api.powerplatform.com/.default"],
)
adapter = HttpxRequestAdapter(authentication_provider=auth_provider)
client = ServiceClientBase(adapter)
await manage_copilot_credits(client, environment_id="<environment ID>")
asyncio.run(main())