Azure-Partnerressourcen-Tagging über den User-Agent-Header


8

Ich versuche, das Partner-Tagging von Azure-Ressourcen zu implementieren, indem ich dem User-Agent-Header eine Partnerprodukt-GUID hinzufüge, wenn Ressourcen über die Resource Manager-API erstellt werden. Dies hat jedoch keine sichtbaren Auswirkungen. Ich habe die ARM-Vorlage einer "getaggten" Ressource überprüft, aber die GUID ist nicht vorhanden. Die im Artikel beschriebene Überprüfungsmethode führt ebenfalls zu negativen Ergebnissen.

Funktioniert es für jemanden?

Hier ist der Powershell-Code, der auf der obigen Anleitung basiert und das Problem reproduziert:

Install-Module -Name Az -AllowClobber -Scope CurrentUser # installs Azure Powerhsell module
$partnerID = "pid-3fd1a53d-3ef0-4111-8a66-211ed6470935" # Product GUID
$VMLocalAdminUser = "partneridtest" # test VM username
$VMLocalAdminSecurePassword = ConvertTo-SecureString "Pa$$word123" -AsPlainText -Force # test VM password
$resourceGroupName=[guid]::NewGuid().ToString() # randomly generated resource group name
Import-Module -Name Az # import Azure Powerhsell module
[Microsoft.Azure.Common.Authentication.AzureSession]::ClientFactory.AddUserAgent($partnerID) # add user-agent for partner tracking

Connect-AzAccount # login to Azure

New-AzResourceGroup -Name $resourceGroupName -Location eastus # create a resource group
Write-Host Resource group name $resourceGroupName

$vmParams = @{
  ResourceGroupName = $resourceGroupName
  Name = 'PartnerIdTest1'
  Location = 'eastus'
  ImageName = 'Win2016Datacenter'
  PublicIpAddressName = 'partnerIdTestPublicIp'
  Credential = New-Object System.Management.Automation.PSCredential ($VMLocalAdminUser, $VMLocalAdminSecurePassword)
  OpenPorts = 3389
}
$newVM1 = New-AzVM @vmParams # create a test VM (should be tagged with the partner product guid)

Get-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName -Name $partnerID # fails with Get-AzResourceGroupDeployment : Deployment 'pid-3fd1a53d-3ef0-4111-8a66-211ed6470935' could not be found.

Hinweis: Die obige GUID ist zufällig - keine echte. Es sollte durch eine registrierte Partner-GUID ersetzt werden.

Antworten:


2

Wenn Sie Ressourcen für die Zuordnung während der Bereitstellung markieren, ist auf der Ressource selbst nichts sichtbar, was auf die Zuordnung hinweist. Es handelt sich um eine interne Implementierung.

Wenn Sie überprüfen möchten, ob der von Ihnen geschriebene Code ordnungsgemäß funktioniert (sodass die Ressource ordnungsgemäß zugeordnet wird), können Sie dies derzeit für die UserAgent-Methode nicht extern tun. Wir können dies nur intern tun. Sie können eine Vorlagenbereitstellung mithilfe des Skripts in dem Dokument überprüfen, mit dem Sie verknüpft sind. Dies funktioniert jedoch nur für Vorlagenbereitstellungen, nicht für API-Aufrufe (TF, SDK usw.).

Im Partnerportal wird nichts angezeigt, es sei denn, 1) die GUID ist registriert und 2) die Ressource wird in Rechnung gestellt.

Alles, was gesagt wurde - Ich habe einen kurzen Blick in die Protokolle geworfen und sehe einige Ressourcen, die mit 3fd1a53d-3ef0-4111-8a66-211ed6470935 im userAgent bereitgestellt wurden.

Diese Hilfe?


0

Dies ist kein funktionierendes Beispiel und passt nicht in Kommentare.

Die Zeile Get-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName -Name $partnerIDversucht, nach einer Bereitstellung mit einem Namen wie $partnerIDin der Ressourcengruppe zu suchen , verwendet jedoch New-AzVM möglicherweise einen Namen wie virtualmachine-<some_random_id>. Um den Befehl so zu verwenden, wie Sie es versuchen, muss die Bereitstellung denselben Namen haben. Dieser Name kann in der ARM-Vorlage oder mit dem Befehl New-AzResourceGroupDeployment angegeben werden .

Ich weiß nicht viel über Partner-Tagging, aber der Befehl funktioniert normalerweise nicht so, als würden Sie versuchen, ihn zu verwenden.

Wenn Ihr $productIDWert für mehrere Bereitstellungen gleich bleibt, Sie jedoch für Bereitstellungen denselben Namen verwenden, werden die vorherigen Bereitstellungen überschrieben (im Grunde verlieren Sie nur den Bereitstellungsverlauf). Ich empfehle, die Ressourcengruppe im Portal zu überprüfen und den Bereitstellungsnamen abzurufen , oder Get-AzResourceGroupDeployment ohne NameParameter zu verwenden, um alle Bereitstellungen abzurufen und die zugehörige Bereitstellung zum Zeitpunkt der Bereitstellung zu ermitteln.

Ich möchte auch darauf hinweisen, dass Sie anscheinend den Resource Manager-API-Prozess verwenden. In der Dokumentation wird jedoch Folgendes für die Überprüfungsmethode angegeben:

Mit dem Skript können Sie überprüfen, ob die GUID erfolgreich zu Ihrer Resource Manager-Vorlage hinzugefügt wurde. Das Skript gilt nicht für Resource Manager-API- oder Terraform-Bereitstellungen.

Ihr Code funktioniert möglicherweise, aber ich sehe keine eindeutige Überprüfungsmethode für die Verwendung der User-Agent-Methode. (Überprüfen Sie wahrscheinlich die Berichte im Partner Center Analyze-Dashboard gemäß Dokumentation?). Da ARM-Vorlagen anscheinend eine Überprüfungsmethode haben, können Sie dies versuchen.


Die Methode mit dem Benutzeragenten wird im Artikel vorgeschlagen: Kennzeichnen einer Bereitstellung mithilfe von Azure PowerShell Wenn Sie Ressourcen über Azure PowerShell bereitstellen, hängen Sie Ihre GUID mithilfe der folgenden Methode an: PowerShell-Kopie [Microsoft.Azure.Common.Authentication.AzureSession]: : ClientFactory.AddUserAgent ("pid-eb7927c8-dd66-43e1-b0cf-c346a422063
Ruslan Mukhamedov

Ja, das habe ich gesehen, aber bei Verwendung der in der Dokumentation genannten User-Agent-Methode wird keine eindeutige Überprüfungsmethode angezeigt. Wenn Sie bereits eine Überprüfungsmethode kennen, empfehle ich Ihnen, diese zu verwenden. Es Get-AzResourceGroupDeploymentwird erwartet, dass der Befehl, den Sie in Code geschrieben haben, fehlschlägt, da Sie versuchen, eine Bereitstellung mit Ihrem Namen zu erhalten, productIDohne ihn zuerst zu erstellen.
stackoverflowusrone

Überprüfen Sie Ihren Bericht wie im selben Artikel erwähnt und prüfen Sie, ob die beabsichtigten Ergebnisse vorliegen.- docs.microsoft.com/en-us/azure/marketplace/…
stackoverflowusrone
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.