共用方式為


Azure 客戶使用量歸因

客戶使用量屬性會將客戶訂用帳戶中在部署您的 IP 時創建的 Azure 資源使用量與您作為合作夥伴聯繫起來。 在 Microsoft 內部系統中建立這些關聯,可以提高 Azure 服務在貴公司軟體運行中所扮演角色的內部曝光度。 對於商業市集 中的Azure 應用程式供應專案,此追蹤功能可協助您與Microsoft銷售小組保持一致,並取得Microsoft合作夥伴計劃的信用額度。 客戶使用量屬性不適用於商業市集中的 Azure 虛擬機方案。 市集發行者不需要執行任何動作來確保虛擬機供應的 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 使用量基本上是自動的。 當您上傳一個作為您市集中的 Azure 應用程式計劃 技術配置一部分的 Resource Manager 範本時,合作夥伴中心會新增 Azure Resource Manager 可讀取的追蹤 ID。

注意

為了確保您的應用程式的使用方式在我們的系統中被正確記錄:

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

如果您使用 Azure Resource Manager APIs,您必須依照以下 指示新增追蹤標識符,並在您的程式碼部署資源時,將它傳遞至 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 應用程式建立的追蹤ID,客戶使用量歸因的其他用途需要您自行建立 GUID 作為追蹤ID。 GUID 是具有 32 個十六進位數位的唯一參考標識碼。 若要建立用於追蹤的 GUID,您應該使用 GUID 產生器,例如透過 PowerShell:

[guid]::NewGuid()

您應該為每個產品和通路建立唯一的 GUID。 如果您不想分開報表,可以對於產品的各個發行通道使用同一個 GUID。 報告是依據 PartnerID 和 GUID 進行的。

註冊 GUID

要將 GUID 與您這位合作夥伴相關聯,必須先在合作夥伴中心註冊。

  1. 登入 合作夥伴中心

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

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

  4. 選取 組織簡介>標識符>新增追蹤 GUID

  5. 在 [GUID] 方塊中,輸入您的追蹤 GUID。 輸入 GUID,但不需包括 pid- 前綴。 在 [描述] 方塊中,輸入您的方案名稱或描述。

  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會收集這項資訊,以提供其產品的最佳體驗,並經營其業務。 數據會由位於 https://www.microsoft.com/trustcenter的Microsoft隱私策略所收集及控管。

SDK 或 API 部署的通知

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

使用 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,請使用 配置 屬性。 您只能將 屬性新增至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 計劃帳戶) 或您的 Microsoft Entra ID (合作夥伴儀錶板帳戶) 登入。
  5. 請完成/檢閱所打開表單上的聯絡資訊。 諮詢詳細數據可能會預先填入,或者您可能有下拉式清單選項。
  6. 輸入標題和問題的詳細描述。
  7. 選取 提交

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

您將會由Microsoft合作夥伴技術顧問聯絡,安排通話以評估您的需求。

常見問題

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

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

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

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

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

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

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

客戶是否會收到客戶使用量歸因報告?

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

客戶使用量歸因是一種機制,用於將 Azure 使用量與合作夥伴的可重複使用與部署的知識產權產生關聯,其關聯是在部署時形成。 DPOR 和 PAL 旨在將諮詢(系統整合商)或管理(受管服務提供者)合作夥伴與客戶相關的 Azure 使用情況建立關聯,適用於合作夥伴與客戶合作的期間。