Определение объема потребления сервисов Azure клиентами

Объем потребления сервисов и приложений Azure клиентами определяется путем сопоставления потребления ресурсов Azure в клиентских подписках, созданных при совместном развертывании вашего решения, где вы сможете выступить в качестве партнера. Формирование этих связей во внутренних системах Майкрософт обеспечивает более высокую внутреннюю видимость для использования программного обеспечения в Azure. Для предложений Azure на коммерческой платформе эта возможность отслеживания помогает согласовать работу с отделами продаж корпорации Майкрософт и получить кредит для партнерских программ Майкрософт. Использование клиентов не применимо к предложениям виртуальных машин Azure на коммерческой платформе. Издателю торговой платформы не требуется ничего делать чтобы убедится, что потребление предложений виртуальных машин в Azure отслеживается в подписках конечных клиентов.

В рамках отслеживания потребления услуг клиентами поддерживаются три варианта развертывания.

  1. Шаблоны Azure Resource Manager (общие подпрограммы для приложений Azure, которые также упоминаются на коммерческой платформе как "шаблоны решения" или "управляемые приложения"): партнеры создают шаблоны Resource Manager, чтобы определить инфраструктуру и конфигурацию своих решений Azure. Шаблон Resource Manager позволяет клиентам развертывать ресурсы вашего решения единообразно и повторяемо.
  2. Интерфейсы API Azure Resource Manager: партнеры могут вызвать API-интерфейсы Resource Manager, чтобы развернуть шаблон Azure Resource Manager или напрямую предоставить службы Azure.
  3. Terraform: с помощью Terraform партнеры могут развертывать шаблоны Resource Manager или напрямую развертывать службы Azure.

Дополнительные варианты использования см. далее в этой статье для использования клиентов за пределами коммерческой платформы.

Важно!

  • Указание использования клиентов не предназначено для отслеживания работы интеграторов систем, поставщиков управляемых служб или средств, предназначенных в основном для развертывания ресурсов Azure и управления ими.

  • Механизм отслеживания потребления услуг клиентами применяется при развертывании новых служб и не используется для ресурсов, которые уже были развернуты.

    • Не все службы Azure совместимы с механизмом определения потребления ресурсов клиентами. Службы Azure Kubernetes Services (AKS), Масштабируемые наборы виртуальных машин и пакетная служба Azure обладают известными проблемами, которые приводят к занижению показателей потребления ресурсов.
    • Данные о потреблении пользователей Azure не совместно используются партнерами.

Приложения на коммерческой платформе Azure

Отслеживание потребления ресурсов Azure из приложений Azure, опубликованных на коммерческой платформе, происходит в основном автоматически. При передаче шаблона Resource Manager в рамках технической настройки плана приложения Azure Marketplace в Центр партнеров добавляется идентификатор отслеживания, доступный для чтения Azure Resource Manager.

Примечание.

Чтобы сведения об использовании приложения точно отражались в наших системах, следуйте правилам ниже.

  1. Если идентификатор отслеживания определен в ресурсе типа Microsoft.Resources/deployment с помощью переменной, замените переменную идентификатором отслеживания, который отображается в Центре партнеров на странице технической настройки плана (см. раздел Добавление GUID в шаблон Resource Manager ниже).
  2. Если ресурсы типа Microsoft.Resources/deployments используются в шаблоне Resource Manager не для определения потребления услуг клиентами, Майкрософт не сможет добавить идентификатор отслеживания для определения потребления услуг от вашего имени. Добавьте новый ресурс типа Microsoft.Resources/deployment и укажите идентификатор отслеживания, который отображается в Центре партнеров на странице технической настройки плана (см. раздел Добавление GUID в шаблон Resource Manager ниже).

При использовании программных API-интерфейсов Azure Resource Manager необходимо добавить идентификатор отслеживания в соответствии с приведенными ниже инструкциями, чтобы передать его Azure Resource Manager для развертывания ресурсов. Этот идентификатор отображается в Центре партнеров на странице технической конфигурации плана приложение Azure.

Примечание.

Для существующих приложений Azure в марте 2021 года началась однократная миграция, чтобы обновить идентификаторы отслеживания в технической конфигурации каждого плана. Информация о потреблении для прошлых развертываний этих предложений будет отслеживаться в системах Майкрософт.

После обновления предложений вам больше не придется добавлять тип ресурса Microsoft.Resources/deployments в основной файл шаблона.

Другие варианты использования

Вы можете использовать указание использования клиентов для отслеживания использования решений Azure, недоступных на коммерческой платформе. Эти решения обычно находятся в репозитории быстрого запуска, закрытых репозиториях GitHub или происходят от взаимодействия с клиентами, которые создают свое решение (например, развертываемое и масштабируемое приложение).

Требуется выполнить несколько действий вручную.

  1. Создайте один или несколько уникальных идентификаторов GUID для использования в качестве идентификаторов отслеживания.
  2. Зарегистрируйте их в Центре партнеров.
  3. Добавьте зарегистрированные идентификаторы GUID в приложение Azure и (или) строки агента пользователя.

Создание глобальных уникальных идентификаторов

В отличие от идентификаторов отслеживания, создаваемых Центром партнеров от вашего имени для приложений Azure на коммерческой платформе, другие способы использования клиентов требуют создания GUID для использования в качестве идентификатора отслеживания. Идентификатор GUID является уникальным идентификатором из 32 шестнадцатеричных цифр и используется для создания ссылок. Чтобы создать идентификаторы GUID для отслеживания, следует использовать генератор GUID, например через PowerShell.

[guid]::NewGuid()

Необходимо создать уникальный идентификатор GUID для каждого продукта и канала распространения. Можно использовать один идентификатор GUID для нескольких каналов распространения, если вы не хотите разделять отчеты. Отчеты возникают с помощью PartnerID и GUID.

Регистрация уникальных идентификаторов GUID

Идентификаторы GUID нужно зарегистрировать в Центре партнеров, чтобы их можно было связать с вами в качестве партнера.

  1. Войдите в Центр партнеров.

  2. Зарегистрируйтесь как коммерческий издатель Azure Marketplace.

  3. Нажмите Параметры (значок шестеренки) в правом верхнем углу и выберите Account settings (Параметры учетной записи).

  4. Выберите Organization profile (Профиль организации)>Identifiers (Идентификаторы)>Add Tracking GUID (Добавить GUID для отслеживания).

  5. В поле GUID введите созданный GUID отслеживания. Введите только GUID без pid- префикса. В поле Description (Описание) введите название или описание решения.

  6. Чтобы зарегистрировать дополнительный идентификатор GUID, снова щелкните Add Tracking GUID (Добавить GUID отслеживания). На странице появятся дополнительные поля.

  7. Выберите Сохранить.

Добавление GUID в шаблон Resource Manager

Чтобы добавить зарегистрированный GUID в шаблон Resource Manager, внесите одно изменение в основной файл шаблона.

  1. Откройте шаблон Resource Manager.

  2. Добавьте новый ресурс типа Microsoft.Resources/deployments в основной файл шаблона. Этот ресурс должен находиться только в файле mainTemplate.json или azuredeploy.json, но не во вложенных или связанных шаблонах.

  3. Введите значение GUID после префикса pid- в качестве имени ресурса. Например, если 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. Скрипт не применяется при развертывании через API Resource Manager или 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

При развертывании этого шаблона корпорация Майкрософт может определить установку программного <обеспечения PARTNER> с развернутыми ресурсами Azure. Корпорация Майкрософт может сопоставлять эти ресурсы, используемые для поддержки программного обеспечения. Корпорация Майкрософт собирает эти сведения, чтобы максимально повысить качество использования своих продуктов и делового сотрудничества. Эти данные собираются и используются с соблюдением политик конфиденциальности корпорации Майкрософт, с которыми можно ознакомиться по адресу https://www.microsoft.com/trustcenter.

Информационное сообщение для развертываний с использованием пакета SDK или API

При развертывании <программного обеспечения PARTNER корпорация Майкрософт может определить установку программного <обеспечения PARTNER>> с развернутыми ресурсами Azure. Корпорация Майкрософт может сопоставлять эти ресурсы, используемые для поддержки программного обеспечения. Корпорация Майкрософт собирает эти сведения, чтобы максимально повысить качество использования своих продуктов и делового сотрудничества. Эти данные собираются и используются с соблюдением политик конфиденциальности корпорации Майкрософт, с которыми можно ознакомиться по адресу https://www.microsoft.com/trustcenter.

Использование интерфейсов API Resource Manager

В некоторых случаях можно выполнять вызовы непосредственно к REST API Resource Manager для развертывания служб Azure. Azure поддерживает несколько пакетов SDK, позволяющих реализовать такие вызовы. Можно использовать один из пакетов SDK или вызывать API-интерфейсы REST напрямую для развертывания ресурсов.

Чтобы отслеживать потребление сервисов клиентами, включите идентификатор отслеживания в заголовок агента пользователя в запросе при создании вызовов 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-"

Важно!

Если вы используете API Resource Manager с приложением Azure на коммерческой платформе, используйте идентификатор отслеживания, указанный в Центре партнеров. НЕ используйте идентификатор GUID.

Различные пакеты SDK взаимодействуют с API-интерфейсами Resource Manager по-разному и требуют некоторых различий в коде. В приведенных ниже примерах используется некоммерческий подход, предполагающий использование идентификатора GUID и охватывающий множество наиболее популярных пакетов SDK для Azure.

Пример: SDK для Python

В 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 г. последняя версия пакета SDK для .NET для Центра партнеров 3.4.0 теперь архивируется. Вы можете скачать выпуск пакета SDK из GitHub вместе с файлом чтения, содержащим полезные сведения.

Партнерам рекомендуется продолжать использовать 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. Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.

Пример: Azure CLI

Чтобы добавить GUID с помощью Azure CLI, задайте переменную среды AZURE_HTTP_USER_AGENT. Также ее можно задать глобально для области оболочки:

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

Дополнительные сведения см. в описании пакета Azure SDK для Go.

Использование Terraform

Поддержка Terraform доступна в выпуске Azure Provider 1.21.0: https://github.com/terraform-providers/terraform-provider-azurerm/blob/master/CHANGELOG.md#1210-january-11-2019. Эта поддержка распространяется на всех партнеров, которые развертывают свои решения через Terraform, и все ресурсы, развернутые и отслеживаемые через Azure Provider (версии 1.21.0 или более поздней).

В Azure Provider для Terraform добавлено новое необязательное поле 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"}

Важно!

Если вы используете Terraform с приложением Azure на коммерческой платформе, используйте идентификатор отслеживания, указанный в Центре партнеров. НЕ используйте идентификатор GUID.

Поддержка

О вариантах поддержки на коммерческой платформе см. в разделе Поддержка программы коммерческой платформы в Центре партнеров.

Как подать запрос техническому консультанту

  1. Зайдите на страницу технических услуг для партнеров.
  2. Выберите раздел Cloud infrastructure and management (Облачная инфраструктура и управление), чтобы посмотреть описание технической процедуры.
  3. Выберите Deployment Services (Службы развертывания)>Submit a request (Отправить запрос).
  4. Войдите с помощью учетной записи MSA (учетная запись Microsoft AI Cloud Partner Program) или идентификатора Microsoft Entra (учетная запись панели мониторинга партнера).
  5. Заполните открывшуюся форму с контактными данными или проверьте указанные в ней данные. Сведения о консультации могут быть предварительно заполнены или у вас могут быть варианты раскрывающегося списка.
  6. Введите заголовок и подробно опишите проблему.
  7. Выберите Отправить.

Ознакомьтесь с пошаговыми инструкциями и снимками экрана на странице Использование услуг технической поддержки в предпродажной работе и развертывании.

Технический консультант для партнеров Майкрософт свяжется с вами, чтобы запланировать беседу для уточнения ваших вопросов.

Вопросы и ответы

Можно ли изменить добавленный ранее идентификатор отслеживания?

Управление идентификаторами отслеживания для приложений Azure на коммерческой платформе осуществляется автоматически Центром партнеров. Однако клиент может загрузить шаблон, изменить или удалить идентификатор отслеживания. Партнеры должны заранее описать роль идентификатора отслеживания для своих клиентов, чтобы предотвратить удаление или изменение. Изменение идентификатора отслеживания влияет только на новые развертывания и ресурсы, но не оказывает влияния на существующие.

Можно ли отслеживать шаблоны, развертываемые из репозитория сторонних производителей, например GitHub?

Да. Данные о потреблении будут отслеживаться, если в шаблоне на момент развертывания указан идентификатор GUID отслеживания. Чтобы поддерживать связь между вами как издателем и шаблоном, развернутым из репозитория сторонних производителей, сначала загрузите копию опубликованного шаблона (который будет содержать идентификатор отслеживания) со страницы вашего предложения на коммерческой платформе портала Azure. Опубликуйте эту версию в GitHub или другом репозитории сторонних производителей.

Если шаблон не указан в коммерческой платформе и содержит зарегистрированный GUID, убедитесь, что GUID присутствует в версии, которую вы публикуете в GitHub или другом репозитории, отличном от Майкрософт.

Предоставляет ли корпорация Майкрософт общий доступ к данным об использовании клиентов с партнерами?

№ Корпорация Майкрософт не предоставляет доступ к данным о потреблении Azure, отслеживаемых через атрибуцию использования клиентов за пределами партнеров.

Получают ли клиенты отчеты об использовании клиентов attribution?

№ Клиенты могут отслеживать потребление всех ресурсов или групп ресурсов на портале Microsoft Azure. Клиенты не видят использования, разбитого с помощью идентификатора отслеживания использования клиентов.

Атрибуция потребления ресурсов клиентами — это механизм, который связывает потребление ресурсов Azure с повторяемым и развертываемым IP-адресом партнера во время развертывания. DPOR и PAL предназначены для связывания партнера, предлагающего консультации (системного интегратора) или управление (поставщика управляемых услуг) с соответствующими ресурсами клиента в Azure в период времени, когда партнер взаимодействует с клиентом.