Общие сведения о подключении ресурсов настраиваемых поставщиков ресурсов Azure

Подключение ресурсов настраиваемых поставщиков ресурсов Azure — это модель расширяемости для типов ресурсов Azure. Она позволяет применять операции или управление в существующих ресурсах Azure в большом масштабе. Дополнительные сведения см. в статье Как поставщики настраиваемых ресурсов Azure могут расширить Azure. В этой статье рассматриваются следующие вопросы:

  • Возможности подключения ресурсов.
  • Основные сведения о подключении ресурсов и варианты их применения.
  • Где найти руководства и примеры кода, чтобы приступить к работе.

Важно!

Поставщики настраиваемых ресурсов в настоящее время находятся в общедоступной предварительной версии. Эта предварительная версия предоставляется без соглашения об уровне обслуживания. Ее не следует использовать для производственных рабочих нагрузок. Некоторые функции могут не поддерживаться, или их возможности могут быть ограничены. Дополнительные сведения см. в статье Дополнительные условия использования предварительных выпусков Microsoft Azure.

Возможности подключения ресурсов

Как и в случае с пользовательскими ресурсами поставщиков ресурсов Azure, подключение ресурсов определяет контракт, который будет выполнять прокси-запросы подключения к конечной точке. В отличие от настраиваемых ресурсов, подключение ресурсов не создает новый тип ресурса. Вместо этого оно разрешает расширение существующих типов ресурсов. Подключение ресурсов также работает с Политикой Azure, поэтому управление ресурсами и их настройку можно выполнять в большом масштабе. Некоторые примеры рабочих процессов подключения ресурсов:

  • Установка расширений виртуальных машин и управление ими.
  • Отправка и настройка значений по умолчанию для учетных записей хранения Azure.
  • Включение базовых параметров диагностики в большом масштабе.

Основные сведения о подключении ресурсов

Подключение ресурсов настраивается с помощью настраиваемых поставщиков ресурсов Azure с помощью типов ресурсов Microsoft.CustomProviders/resourceProviders и Microsoft.CustomProviders/associations. Чтобы включить подключение ресурсов для настраиваемого поставщика ресурсов, в процессе настройки создайте тип ресурса с именем associations с типом маршрутизации , включающим "Расширение". Типы Microsoft.CustomProviders/associations и Microsoft.CustomProviders/resourceProviders не должны принадлежать к одной группе ресурсов.

Ниже приведен пример настраиваемого поставщика ресурсов Azure.

{
  "properties": {
    "resourceTypes": [
      {
        "name": "associations",
        "routingType": "Proxy,Cache,Extension",
        "endpoint": "https://microsoft.com/"
      }
    ]
  },
  "location": "eastus"
}
Свойство Необходим? Описание
name Да Имя определения конечной точки. Для подключение ресурсов имя должно иметь значение associations.
routingType Да Определяет тип контракта с конечной точкой. Для подключения ресурсов допустимыми значениями для routingTypes являются "Proxy,Cache,Extension" и "Webhook,Cache,Extension".
endpoint Да Конечная точка для направления запросов. Она будет обрабатывать ответ и все побочные эффекты запроса.

После создания настраиваемого поставщика ресурсов с типом ресурса associations можно использовать microsoft.CustomProviders/associations. Microsoft.CustomProviders/associations — это ресурс расширения, который может расширить любой другой ресурс Azure. После создания экземпляра Microsoft.CustomProviders/associations он будет использовать свойство targetResourceId, которое должно быть допустимым ИД ресурса Microsoft.CustomProviders/resourceProviders или Microsoft.Solutions/applications. В таких случаях запрос будет перенаправлен к типу ресурса associations в созданном вами экземпляре Microsoft.CustomProviders/resourceProviders.

Примечание

Если ИД ресурса Microsoft.Solutions/applications указан в качестве targetResourceId, в управляемой группе ресурсов должен быть развернут экземпляр Microsoft.CustomProviders/resourceProviders с именем public.

Пример сопоставления настраиваемых поставщиков ресурсов Azure:

{
  "properties": {
    "targetResourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}",
    ...
  }
}
Свойство Необходим? Описание
targetResourceId Да ИД ресурса Microsoft.CustomProviders/resourceProviders или Microsoft.Solutions/applications.

Использование подключения ресурсов

Подключение ресурсов работает, расширяя другие ресурсы с помощью ресурса расширения Microsoft.CustomProviders/associations. В следующем примере запрос выполняется для виртуальной машины, но любой ресурс можно расширить.

Сначала необходимо создать настраиваемый ресурс поставщика ресурсов с типом ресурса associations. При этом будет объявлен URL-адрес обратного вызова, который будет использоваться при создании соответствующего ресурса Microsoft.CustomProviders/associations, предназначенного для настраиваемого поставщика ресурсов.

Пример запроса на создание Microsoft.CustomProviders/resourceProviders:

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}?api-version=2018-09-01-preview
Authorization: Bearer eyJ0e...
Content-Type: application/json

{
  "properties": {
    "resourceTypes": [
      {
        "name": "associations",
        "routingType": "Proxy,Cache,Extension",
        "endpoint": "https://{myCustomEndpoint}/"
      }
    ]
  },
  "location": "{location}"
}

После создания настраиваемого поставщика ресурсов можно выбрать другие ресурсы и применить к ним побочные эффекты настраиваемого поставщика ресурсов.

Пример запроса на создание Microsoft.CustomProviders/associations:

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{virtualMachineName}/providers/Microsoft.CustomProviders/associations/{associationName}?api-version=2018-09-01-preview
Authorization: Bearer eyJ0e...
Content-Type: application/json

{
  "properties": {
    "targetResourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}",
    "myProperty1": "myPropertyValue1",
    "myProperty2": {
        "myProperty3" : "myPropertyValue3"
    }
  }
}

Затем этот запрос будет перенаправлен в конечную точку, указанную в созданном пользовательском поставщике ресурсов, на который ссылается targetResourceId в следующей форме:

PUT https://{endpointURL}/?api-version=2018-09-01-preview
Content-Type: application/json
X-MS-CustomProviders-RequestPath: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/associations/{associationName}
X-MS-CustomProviders-ExtensionPath: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{virtualMachineName}/providers/Microsoft.CustomProviders/associations/{associationName}
X-MS-CustomProviders-ExtendedResource: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{virtualMachineName}

{
  "properties": {
    "myProperty1": "myPropertyValue1",
    "myProperty2": {
        "myProperty3" : "myPropertyValue3"
    }
  }
}

Конечная точка должна отвечать с помощью приложения или JSON Content-Type и допустимого текста ответа JSON. Поля, возвращаемые в объекте свойств JSON, будут добавлены в возвращаемый ответ связи.

Получение справки

Если у вас возникли вопросы о разработке поставщиков настраиваемых ресурсов Azure, попробуйте задать их в Stack Overflow. Подобный вопрос, возможно, уже был задан, поэтому перед его публикацией сначала проверьте наличие ответа. Чтобы быстрее получить ответ, добавьте к вопросу тег azure-custom-providers!

Дальнейшие действия

Из этой статьи вы узнали о настраиваемых поставщиках ресурсов. Дополнительные сведения см. в статьях ниже: