Azure 客戶使用量屬性

客戶使用量屬性會將客戶訂用帳戶中建立的客戶訂用帳戶中的使用量與您作為合作夥伴一起部署您的IP。 在內部 Microsoft 系統中形成這些關聯,可提升內部可見度,讓執行您軟體的 Azure 使用量更加可見。 對於商業市集中的 Azure 應用程式 供應專案,此追蹤功能可協助您與 Microsoft 銷售小組保持一致,並獲得 Microsoft 合作夥伴計畫的信用額度。 客戶使用量屬性不適用於 商業市集中的 Azure 虛擬機供應專案。 虛擬機供應專案不需要 Marketplace 發行者執行任何動作,以確保其 Azure 耗用量會追蹤在終端客戶訂用帳戶中。

客戶使用狀況屬性支援三種部署選項:

  1. Azure Resource Manager 範本(Azure 應用程式的常見基礎,也稱為商業市集中稱為「解決方案範本」或「受控應用程式」):合作夥伴會建立 Resource Manager 範本來定義其 Azure 解決方案的基礎結構和組態。 Resource Manager 範本可讓客戶以一致且可重複的狀態部署解決方案的資源。
  2. Azure Resource Manager API:合作夥伴可以呼叫 Resource Manager API 來部署 Resource Manager 範本或直接佈建 Azure 服務。
  3. Terraform:合作夥伴可以使用 Terraform 來部署 Resource Manager 範本或直接部署 Azure 服務。

如需商業市集外部的客戶使用量屬性,請參閱 本文稍後的次要使用案例

重要

  • 客戶使用量屬性並非用來追蹤系統整合者、受控服務提供者或主要用來部署和管理 Azure 資源的工具工作。

  • 客戶使用量屬性適用於新的部署,且不支援已部署的追蹤資源。

    • 並非所有 Azure 服務都與客戶使用量屬性相容。 Azure Kubernetes Services (AKS)、VM 擴展集和 Azure Batch 有導致使用量報告不足的已知問題。
    • 客戶使用量屬性 Azure 使用量資料不會與合作夥伴外部共用。

商業市集 Azure 應用程式

從發佈至商業市集的 Azure 應用程式追蹤 Azure 使用量基本上是自動的。 當您上傳 Resource Manager 範本作為 Marketplace Azure 應用程式方案技術設定的一部分時,合作夥伴中心會新增 Azure Resource Manager 可讀取的追蹤標識符。

注意

為了確保應用程式的使用方式在我們的系統中正確歸咎於:

  1. 如果您在資源類型 Microsoft.Resources/deployment 中以變數定義追蹤標識符,請將變數取代為方案 [技術設定] 頁面上合作夥伴中心可見的追蹤標識碼(請參閱下面的將 GUID 新增至 Resource Manager 範本)。
  2. 如果您的 Resource Manager 範本使用 Microsoft.Resources/deployments 類型的資源做為客戶使用量屬性以外的用途,Microsoft 將無法代表您新增客戶使用量屬性追蹤標識符。 在方案 的技術 設定頁面上,新增類型為 Microsoft.Resources/deployments 的新資源,並在合作夥伴中心新增追蹤標識碼(請參閱 下方將 GUID 新增至 Resource Manager 範本 )。

如果您使用 Azure Resource Manager API,您必須依照 下列 指示新增追蹤標識碼,以在程式代碼部署資源時將其傳遞至 Azure Resource Manager。 此識別子會顯示在您 Azure 應用程式 方案的 [技術設定] 頁面上的合作夥伴中心。

注意

對於現有的 Azure 應用程式,一次性移轉始於 2021 年 3 月,以更新每個方案技術設定中的追蹤標識符。 這些供應項目的過去部署使用量將會在 Microsoft 系統中持續追蹤。

當您更新供應專案時,不再需要在主要範本檔案中新增 Microsoft.Resources/deployments 資源類型。

其他使用案例

您可以使用客戶使用量屬性來追蹤商業市集中無法使用之解決方案的 Azure 使用量。 這些解決方案通常位於快速入門存放庫、私人 GitHub 存放庫,或來自建立持久 IP 的 1:1 客戶參與專案(例如可部署且可調整的應用程式)。

需要數個手動步驟:

  1. 建立一或多個 GUID,以作為您的追蹤識別碼。
  2. 在合作夥伴中心註冊這些 GUID。
  3. 將已註冊的 GUID 新增至 Azure 應用程式和/或使用者代理程式字串。

建立 GUID

不同於合作夥伴中心代表您在商業市集中為 Azure 應用程式建立的追蹤標識碼,其他客戶使用量屬性的使用方式會要求您建立 GUID 以作為追蹤標識碼。 GUID 是具有 32 個十六進位數位的唯一參考標識碼。 若要建立用於追蹤的 GUID,您應該使用 GUID 產生器,例如透過 PowerShell:

[guid]::NewGuid()

您應該為每個產品和散發通道建立唯一的 GUID。 如果您不想要分割報表,則可以針對產品的多個散發通道使用單一 GUID。 報告是由 PartnerID 和 GUID 所發生。

註冊 GUID

接下來必須在合作夥伴中心註冊 GUID,才能將 GUID 與您建立關聯:

  1. 登入合作夥伴中心

  2. 註冊為 商業市集發行者

  3. 選取右上角的 [設定 [齒輪圖示],然後選取 [帳戶設定]。

  4. 選取 [組織配置文件>標識符>][新增追蹤 GUID]。

  5. 在 [ GUID ] 方塊中,輸入您的追蹤 GUID。 只要輸入不含前置詞的 pid- GUID。 在 [ 描述] 方塊中,輸入您的方案名稱或描述。

  6. 若要註冊多個 GUID,請再次選取 [ 新增追蹤 GUID ]。 頁面上會出現其他方塊。

  7. 選取 [儲存]。

將 GUID 新增至 Resource Manager 範本

若要將已註冊的 GUID 新增至 Resource Manager 範本,請對主要範本檔案進行單一修改:

  1. 開啟 Resource Manager 範本。

  2. 在主要範本檔案中新增 Microsoft.Resources/deployments 類型的新資源。 資源必須只位於 mainTemplate.jsonazuredeploy.json 檔案中,而不是在任何巢狀或連結的範本中。

  3. 在前置詞後面 pid- 輸入 GUID 值作為資源的名稱。 例如,如果 GUID 是 eb7927c8-dd66-43e1-b0cf-c346a422063,則資源名稱會是 pid-eb7927c8-dd66-43e1-b0cf-c346a422063。 範例:

{ // add this resource to the resources section in the mainTemplate.json
    "apiVersion": "2020-06-01",
    "name": "pid-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", // use your generated GUID here
    "type": "Microsoft.Resources/deployments",
    "properties": {
        "mode": "Incremental",
        "template": {
            "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
            "contentVersion": "1.0.0.0",
            "resources": []
        }
    }
} // remove all comments from the file when complete
  1. 檢查範本是否有錯誤。

  2. 在適當的存放庫中重新發佈範本。

  3. 確認範本部署中的 GUID 成功。

提示

如需建立和發佈 Resource Manager 範本的詳細資訊,請參閱: 建立和部署您的第一個 Resource Manager 範本

確認使用 GUID 追蹤的部署

修改範本並執行測試部署之後,請使用下列 PowerShell 腳本來擷取您所部署和標記的資源。

您可以使用腳本來確認 GUID 已成功新增至 Resource Manager 範本。 腳本不適用於 Resource Manager API 或 Terraform 部署。

登入Azure。 在執行文稿之前,請選取您要驗證的部署訂用帳戶。 在部署的訂用帳戶內容中執行腳本。

部署的 GUID (如下稱為 “deploymentName”) 和 resourceGroupName 名稱是必要參數。

您可以在 GitHub 上取得原始 的 Verify-DeploymentGuid 腳本

Param(
    [string][Parameter(Mandatory=$true)]$deploymentName, # the full name of the deployment, e.g. pid-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
    [string][Parameter(Mandatory=$true)]$resourceGroupName
)

# Get the correlationId of the named deployment
$correlationId = (Get-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName -Name "$deploymentName").correlationId

# Find all deployments with that correlationId
$deployments = Get-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName | Where-Object{$_.correlationId -eq $correlationId}

# Find all deploymentOperations in all deployments with that correlationId as PowerShell doesn't surface outputResources on the deployment or correlationId on the deploymentOperation

foreach ($deployment in $deployments){
    # Get deploymentOperations by deploymentName
    # then the resourceIds for each resource
    ($deployment | Get-AzResourceGroupDeploymentOperation | Where-Object{$_.targetResource -notlike "*Microsoft.Resources/deployments*"}).TargetResource
}

通知您的客戶

合作夥伴應通知其客戶使用客戶使用量屬性的部署。 下列範例包含可用來通知客戶有關這些部署的內容。 在範例中,將 PARTNER> 取代<為您的公司名稱。 合作夥伴應確保通知符合其數據隱私權和收集原則,包括要排除在追蹤之外的客戶選項。

Resource Manager 範本部署的通知

當您部署此範本時,Microsoft 可以使用已部署的 <Azure 資源來識別 PARTNER> 軟體的安裝。 Microsoft 可以將這些用來支援軟體的資源相互關聯。 Microsoft 會收集這項資訊,以提供其產品的最佳體驗,以及營運其業務。 數據會收集並受位於的 Microsoft 隱私策略 https://www.microsoft.com/trustcenter所控管。

SDK 或 API 部署的通知

當您部署 <PARTNER> 軟體時,Microsoft 可以使用已部署的 <Azure 資源來識別 PARTNER> 軟體的安裝。 Microsoft 可以將這些用來支援軟體的資源相互關聯。 Microsoft 會收集這項資訊,以提供其產品的最佳體驗,以及營運其業務。 數據會收集並受位於的 Microsoft 隱私策略 https://www.microsoft.com/trustcenter所控管。

使用 Resource Manager API

在某些情況下,您可以直接對 Resource Manager REST API 進行呼叫,以部署 Azure 服務。 Azure 支援 多個SDK來啟用這些呼叫。 您可以使用其中一個 SDK,或直接呼叫 REST API 來部署資源。

若要啟用客戶使用量屬性,當您設計 API 呼叫時,請在要求的使用者代理程式標頭中包含您的追蹤識別碼。 使用前置詞 pid- 格式化字串。 範例:

//Commercial Marketplace Azure app
pid-contoso-myoffer-partnercenter //copy the tracking ID exactly as it appears in Partner Center

//Other use cases
pid-b6addd8f-5ff4-4fc0-a2b5-0ec7861106c4 //enter your GUID after "pid-"

重要

如果您在商業市集中搭配 Azure 應用程式使用 Resource Manager API,請使用合作夥伴中心所提供的追蹤識別符。 請勿使用 GUID。

不同的 SDK 會以不同的方式與 Resource Manager API 互動,而且需要程式代碼中的一些差異。 下列範例提供使用 GUID 的非商業市集方法,並涵蓋各種較熱門的 Azure SDK。

範例:Python SDK

針對 Python,請使用 config 屬性。 您只能將 屬性新增至UserAgent。 範例:

client = azure.mgmt.servicebus.ServiceBusManagementClient(**parameters)
client.config.add_user_agent("pid-b6addd8f-5ff4-4fc0-a2b5-0ec7861106c4")

重要

為每個用戶端新增屬性。 沒有全域靜態組態。 您可以標記客戶端處理站,以確保每個客戶端都追蹤。 如需詳細資訊,請參閱 GitHub 上的此客戶端處理站範例。

範例:.NET SDK

針對 .NET,請務必設定使用者代理程式。 使用 Microsoft.Azure.Management.Fluent 連結庫,以下列程式代碼設定使用者代理程式(C# 範例):

var azure = Microsoft.Azure.Management.Fluent.Azure
    .Configure()
    // Add your pid in the user agent header
    .WithUserAgent("pid-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", String.Empty) 
    .Authenticate(/* Credentials created via Microsoft.Azure.Management.ResourceManager.Fluent.SdkContext.AzureCredentialsFactory */)
    .WithSubscription("<subscription ID>");

重要

自 2023 年 6 月起,最新的合作夥伴中心 .NET SDK 3.4.0 版現已封存。 您可以從 GitHub 下載 SDK 版本,以及 包含實用資訊的自述檔

鼓勵合作夥伴繼續使用 合作夥伴中心 REST API

範例:Azure PowerShell

如果您透過 Azure PowerShell 部署資源,請使用此方法附加 GUID:

[Microsoft.Azure.Common.Authentication.AzureSession]::ClientFactory.AddUserAgent("pid-eb7927c8-dd66-43e1-b0cf-c346a422063")

注意

建議您使用 Azure Az PowerShell 模組來與 Azure 互動。 請參閱安裝 Azure PowerShell 以開始使用。 若要了解如何移轉至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 移轉至 Az

範例:Azure CLI

當您使用 Azure CLI 附加 GUID 時,請在腳本的範圍內設定 AZURE_HTTP_USER_AGENT 環境變數。 您也可以全域設定殼層範圍的變數:

export AZURE_HTTP_USER_AGENT='pid-eb7927c8-dd66-43e1-b0cf-c346a422063'

如需詳細資訊,請參閱 Azure SDK for Go

使用 Terraform

支援 Terraform 可透過 Azure 提供者的 1.21.0 版本取得: https://github.com/terraform-providers/terraform-provider-azurerm/blob/master/CHANGELOG.md#1210-january-11-2019。 這適用於透過 Terraform 部署其解決方案的所有合作夥伴,以及由 Azure 提供者部署和計量的所有資源(1.21.0 版或更新版本)。

適用於 Terraform 的 Azure 提供者新增了名為 partner_id 的新選擇性欄位,以指定用於解決方案的追蹤 GUID。 此欄位的值也可以從 ARM_PARTNER_ID 環境變數來源。

provider "azurerm" {
          subscription_id = "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
          client_id = "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
          ……
          # new stuff for ISV attribution
          partner_id = "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"}

重要

如果您在商業市集中搭配 Azure 應用程式使用 Terraform,請使用合作夥伴中心所提供的整個追蹤標識碼。 請勿使用 GUID。

取得支援

了解合作夥伴中心商業市集支援商業市集計劃的商業市集支援選項。

如何提交技術諮詢要求

  1. 請瀏覽 合作夥伴技術服務
  2. 選取 [雲端基礎結構和管理 ] 以檢視技術旅程。
  3. 選取 [部署服務>提交要求]。
  4. 使用 MSA (Microsoft AI Cloud Partner Program account) 或您的 Microsoft Entra ID (合作夥伴儀錶板帳戶) 登入。
  5. 完成/檢閱開啟窗體上的聯繫人資訊。 諮詢詳細數據可能會預先填入,或者您可能有下拉式選項。
  6. 輸入標題和問題的詳細描述。
  7. 選取 [提交]

使用技術售前和部署服務中的螢幕快照,檢視逐步指示。

Microsoft 合作夥伴技術顧問會連絡您,以設定您的需求範圍通話。

常見問題集

新增追蹤標識碼之後,是否可以變更?

商業市集中 Azure 應用程式的追蹤標識碼會自動由合作夥伴中心管理。 不過,客戶可以下載範本並變更或移除追蹤標識碼。 合作夥伴應主動向客戶描述追蹤標識碼的角色,以防止移除或編輯。 變更追蹤標識碼只會影響新的部署和資源,而不會影響現有的部署和資源。

我可以追蹤從 GitHub 等非 Microsoft 存放庫部署的範本嗎?

是,只要部署範本時有追蹤標識符,就會追蹤使用量。 若要維護您作為發行者與從非 Microsoft 存放庫部署的範本之間的關聯,請先從 Azure 入口網站的供應專案商業市集清單下載已發佈範本的複本(其中包含追蹤標識符)。 將該版本發佈至 GitHub 或其他非 Microsoft 存放庫。

如果您的範本未列在商業市集中,且包含已註冊的 GUID,請確定 GUID 存在於您發佈至 GitHub 的版本或其他非 Microsoft 存放庫。

Microsoft 是否與合作夥伴共用客戶使用量屬性數據?

否。 Microsoft 不會與合作夥伴共用透過客戶使用量屬性在外部追蹤的 Azure 使用量數據。

客戶是否會收到客戶使用量屬性報告?

否。 客戶可以在 Azure 入口網站 內追蹤其所有資源或資源群組的使用方式。 客戶看不到依客戶使用量屬性追蹤標識子細分的使用量。

客戶使用狀況屬性是一種機制,可將 Azure 使用量與合作夥伴的可重複部署 IP 產生關聯-在部署時形成關聯。 DPOR 和 PAL 旨在讓諮詢(系統整合者)或管理(受控服務提供者)合作夥伴與客戶的相關 Azure 使用量建立關聯,同時合作夥伴與客戶接觸。