Azure 顧客の使用状況の属性

顧客の使用状況の属性は、パートナーの IP をデプロイしているときに作成された顧客のサブスクリプションでの Azure リソースの使用状況をパートナーに関連付けます。 Microsoft の内部システムでこれらの関連付けを形成すると、ソフトウェアを実行している Azure フットプリントの内部可視性が向上します。 コマーシャル マーケットプレースの Azure アプリケーション プランの場合、この追跡機能は、Microsoft セールス チームと連携し、Microsoft パートナー プログラムでの信頼を得るために役立ちます。 顧客の使用状況の属性は、コマーシャル マーケットプレースの Azure 仮想マシン オファーには適用されません。 エンドカスタマー サブスクリプションで Azure の使用量が追跡されるようにするために、マーケットプレースのパブリッシャーが仮想マシン オファーに対して行う必要があることは何もありません。

顧客の使用状況の属性では、以下の 3 つのデプロイ オプションがサポートされます。

  1. Azure Resource Manager テンプレート (Azure アプリの共通の基盤、コマーシャル マーケットプレースでは "ソリューション テンプレート" または "マネージド アプリ" とも呼ばれます): パートナーは、インフラストラクチャとその Azure ソリューションの構成を定義するために Resource Manager テンプレートを作成します。 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 Scale Sets、Microsoft Azure Batch には、使用状況を実際よりも低く報告する既知の問題があります。
    • 顧客の使用状況属性の Azure 従量課金データは、パートナーと外部で共有されません。

コマーシャル マーケットプレースの Azure アプリ

コマーシャル マーケットプレースに公開されている Azure アプリの Azure の使用状況の追跡は、ほぼ自動的に行われます。 マーケットプレースの Azure アプリのプランの技術的な構成の一部として Resource Manager テンプレートをアップロードすると、パートナー センターでは、Azure Resource Manager で読み取り可能な追跡 ID を追加します。

Note

アプリケーションの使用に関する属性がシステムで正しく設定されるようにするには、次のようにします。

  1. リソースの種類 Microsoft.Resources/deployment と変数を使用して追跡 ID を定義する場合は、その変数をプランの [技術的な構成] ページのパートナー センターに表示される追跡 ID に置き換えます (下記の「GUID を Resource Manager テンプレートに追加する」を参照してください)。
  2. Resource Manager テンプレートで、顧客の使用状況の属性以外の目的で Microsoft.Resources/deployments の種類のリソースを使用している場合、Microsoft では、ユーザーに代わって顧客の使用状況の属性の追跡 ID を追加できません。 新しいリソースの種類 Microsoft.Resources/deployments を追加し、プランの [技術的な構成] ページの パートナー センターに表示される追跡 ID を追加します (下記の「GUID を Resource Manager テンプレートに追加する」を参照してください)。

Azure Resource Manager API を使用する場合は、コードでリソースをデプロイするときに Azure Resource Manager に渡すために、以下の手順に従って追跡 ID を追加する必要があります。 この ID は、パートナー センターの Azure アプリlication プランの [技術構成] ページに表示されます。

Note

既存の Azure アプリの場合は、各プランの技術的な構成にある追跡 ID を更新するために、2021 年 3 月に 1 回限りの移行が開始されました。 これらのプランの過去のデプロイの使用状況は、Microsoft システムで引き続き追跡されます。

プランを更新すると、メイン テンプレート ファイルに、Microsoft.Resources またはデプロイ リソースの種類を追加する必要がなくなります。

その他のユース ケース

顧客の使用状況の属性を使用して、コマーシャル マーケットプレースで利用できないソリューションの Azure 使用状況を追跡できます。 これらのソリューションは通常、クイック スタート リポジトリやプライベート GitHub リポジトリに存在するか、または持続的な IP を作成する 1:1 の顧客エンゲージメントから生まれます (デプロイ可能で、かつスケーラブルなアプリなど)。

次のいくつかの手動の手順が必要になります。

  1. 追跡 ID として使用する 1 つ以上の GUID を作成します。
  2. これらの GUID をパートナー センターで登録します。
  3. 登録された GUID を Azure アプリまたはユーザー エージェント文字列、あるいはその両方に追加します。

GUID の作成

パートナー センターがコマーシャル マーケットプレースの Azure アプリに代わって作成する追跡 ID とは異なり、顧客の使用状況の属性を使用する他の用途では、追跡 ID として使用する GUID を作成する必要があります。 GUID は、32 桁の 16 進数を含む一意の参照識別子です。 追跡のための GUID を作成するには、GUID ジェネレーターを使用する必要があります。たとえば、PowerShell を使用して、次のように入力します。

[guid]::NewGuid()

製品と配布チャネルごとに一意の GUID を作成する必要があります。 レポート作成が分割されないようにしたい場合は、製品の複数の配布チャネルに対して 1 つの GUID を使用できます。 レポートは、PartnerID と GUID によって発生します。

GUID を登録する

次に、GUID をパートナー センターで登録して、パートナーに関連付けることができるようにする必要があります。

  1. パートナー センターにサインインします。

  2. 商業マーケットプレース パブリッシャーとしてサインアップします。

  3. 右上隅の [設定] (歯車アイコン) を選択してから、[アカウント設定] を選択します。

  4. [組織プロファイル]>[識別子]>[追跡 GUID の追加] の順に選択します。

  5. [GUID] ボックスに、追跡用 GUID を入力します。 pid- プレフィックスは付けずに GUID だけを入力してください。 [説明] ボックスに、ソリューションの名前または説明を入力します。

  6. 複数の GUID を登録するには、もう一度 [Add Tracking GUID]\(トラッキング GUID の追加\) を選択します。 追加のボックスがページに表示されます。

  7. [保存] を選択します。

GUID を Resource Manager テンプレートに追加する

登録された GUID を Resource Manager テンプレートに追加するには、メイン テンプレート ファイルに 1 つの変更を加えます。

  1. Resource Manager テンプレートを開きます。

  2. メイン テンプレート ファイルで Microsoft.Resources/deployments 型の新しいリソースを追加します。 このリソースは、mainTemplate.json または azuredeploy.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 の名前は必須のパラメーターです。

の Verify-DeploymentGuid スクリプト は GitHub で取得できます。

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 は <PARTNER> ソフトウェアのインストールを、デプロイされた Azure リソースと共に識別できます。 Microsoft は、このソフトウェアをサポートするために使用されるこれらのリソースを関連付けることができます。 Microsoft はこの情報を収集し、パートナーの製品とビジネスの運用に最適なエクスペリエンスを提供します。 これらのデータは、Microsoft のプライバシー ポリシー (https://www.microsoft.com/trustcenter にあります) によって収集および管理されます。

SDK または API でデプロイする場合の通知

<PARTNER> ソフトウェアをデプロイすると、Microsoft は <PARTNER> ソフトウェアのインストールを、デプロイされた Azure リソースと共に識別できます。 Microsoft は、このソフトウェアをサポートするために使用されるこれらのリソースを関連付けることができます。 Microsoft はこの情報を収集し、パートナーの製品とビジネスの運用に最適なエクスペリエンスを提供します。 これらのデータは、Microsoft のプライバシー ポリシー (https://www.microsoft.com/trustcenter にあります) によって収集および管理されます。

Resource Manager API を使用する

場合によっては、Resource Manager REST API に対して直接呼び出しを行って、Azure サービスをデプロイできます。 こうした呼び出しに対応するため、Azure は複数の SDK をサポートしています。 いずれかの SDK を使用するか、または REST API を直接呼び出してリソースをデプロイできます。

顧客の使用状況の属性を有効にするには、API 呼び出しを設計するときに、要求内のユーザー エージェント ヘッダーに追跡 ID を含めます。 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 を使用している場合は、パートナー センターで提供された追跡 ID を使用します。 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 がアーカイブされるようになりました。 SDK リリースは、有用な情報が記載された readme ファイルと一緒に GitHub からダウンロードできます。

パートナーの皆様には、パートナー センター REST API を引き続き使用することをお勧めします。

例: Azure PowerShell

Azure PowerShell 経由でリソースをデプロイする場合は、次のメソッドを使用して GUID を追加します。

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

注意

Azure を操作するには、Azure Az PowerShell モジュールを使用することをお勧めします。 作業を開始するには、Azure PowerShell のインストールに関する記事を参照してください。 Az PowerShell モジュールに移行する方法については、「AzureRM から Az への Azure PowerShell の移行」を参照してください。

例: 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 プロバイダーでは、ソリューションに使用される追跡 GUID を指定するための partner_id という名前の新しい省略可能なフィールドが追加されました。 このフィールドの値は、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 を使用している場合は、パートナー センターで提供された追跡 ID 全体を使用します。 GUID を使用しないでください。

サポートを受ける

コマーシャル マーケットプレースのサポート オプションについては、「パートナー センターでのコマーシャル マーケットプレース プログラムのサポート」を参照してください。

技術コンサルティングの要求を送信する方法

  1. パートナー テクニカル サービスを参照してください。
  2. [クラウド インフラストラクチャおよび管理] を選択して、技術的な説明を表示します。
  3. [デプロイ サービス]>[要求の送信] の順に選択します。
  4. MSA (Microsoft AI Cloud パートナー プログラム アカウント) または Microsoft Entra ID (パートナー ダッシュボード アカウント) を使用してサインインします。
  5. 開いたフォームで、連絡先情報を入力または確認します。 コンサルテーションの詳細が事前に設定されているか、ドロップダウン オプションがある場合があります。
  6. 問題のタイトルと詳細な説明を入力します。
  7. 送信を選択します。

スクリーンショット付きの詳細な手順については、テクニカル プリセールスおよびデプロイ サービスを使用する方法に関する記事を参照してください。

お客様のニーズを調べる電話の準備のために、Microsoft パートナー技術コンサルタントから連絡があります。

よく寄せられる質問

追跡 ID が追加された後、それを変更することはできますか?

コマーシャル マーケットプレースの Azure アプリの追跡 ID は、パートナー センターによって自動的に管理されます。 ただし、顧客はテンプレートをダウンロードして、追跡 ID を変更または削除できます。 パートナーは、これらの削除や編集を防止するために、追跡 ID の役割を顧客に事前に説明しておく必要があります。 追跡 ID の変更は、新しいデプロイとリソースにのみ影響を与え、既存のデプロイやリソースは影響を受けません。

GitHub のような Microsoft 以外のリポジトリからデプロイしたテンプレートを追跡できますか?

はい。テンプレートがデプロイされたときに追跡 ID が存在している限り、使用状況が追跡されます。 公開元であるパートナーと、Microsoft 以外のリポジトリからデプロイされたテンプレートの間の関連付けを維持するには、まず、Azure portal でそのプランのコマーシャル マーケットプレースの一覧から (追跡 ID が含まれている) 公開されたテンプレートのコピーをダウンロードします。 そのバージョンを GitHub または Microsoft 以外の別のリポジトリに公開します。

テンプレートがコマーシャル マーケットプレースに一覧表示されておらず、登録済みの GUID が含まれている場合は、GitHub または他の Microsoft 以外のリポジトリに発行するバージョンに GUID が存在することを確認します。

Microsoft は顧客の使用状況属性データをパートナーと共有していますか?

いいえ。 Microsoft は、顧客の利用状況の属性によって追跡された Azure 消費データをパートナーと外部で共有しません。

顧客は顧客の利用状況の属性レポートを受け取りますか?

いいえ。 顧客は、Azure portal 内のすべてのリソースまたはリソース グループの自分の使用状況を追跡できます。 顧客の利用状況の属性の追跡 ID によって分断された使用状況は表示されません。

顧客の使用状況の属性は、Azure の使用状況をパートナーの反復可能で、デプロイ可能な IP に関連付ける (デプロイ時に関連付けを形成する) ためのメカニズムです。 DPOR と PAL は、コンサルティング (システム インテグレーター) または管理 (マネージド サービス プロバイダー) パートナーを、そのパートナーが顧客と連携している間のその顧客の該当する Azure の占有領域に関連付けることを目的にしています。