Compartilhar via


Visão geral de integração de recursos dos Provedores de Recursos Personalizados do Azure

A integração de recursos dos Provedores de Recursos Personalizados do Azure é um modelo de extensibilidade para tipos de recursos do Azure. Ele permite que você aplique as operações ou o gerenciamento entre recursos existentes do Azure em escala. Para obter mais informações, confira Como os Provedores de Recursos Personalizados do Azure podem estender o Azure. Este artigo descreve:

  • O que a integração de recursos pode fazer.
  • Noções básicas sobre a integração de recursos e como usá-la.
  • Onde encontrar guias e exemplos de código para começar.

Importante

No momento, os Provedores de Recursos Personalizados estão em versão prévia pública. Essa versão prévia é fornecida sem um contrato de nível de serviço e não é recomendada para cargas de trabalho de produção. Alguns recursos podem não ter suporte ou ter restrição de funcionalidades. Para obter mais informações, consulte Termos de Uso Complementares de Versões Prévias do Microsoft Azure.

O que a integração de recursos pode fazer?

Semelhante aos recursos personalizados dos Provedores de Recursos Personalizados do Azure, a integração de recursos define um contrato que direcionará as solicitações de "integração" a um ponto de extremidade. Ao contrário dos recursos personalizados, a integração de recursos não cria um tipo de recurso. Em vez disso, ela permite a extensão de tipos de recursos existentes. E a integração de recursos funciona com o Azure Policy, portanto, o gerenciamento e a configuração de recursos podem ser feitos em escala. Alguns exemplos de fluxos de trabalho de integração de recursos:

  • Instalar e gerenciar com as extensões da máquina virtual.
  • Carregar e configurar padrões em contas de armazenamento do Azure.
  • Habilitar as configurações de diagnóstico de linha de base em escala.

Conceitos básicos sobre a integração de recursos

Você configura a integração de recursos por meio dos Provedores de Recursos Personalizados do Azure, usando os tipos de recursos Microsoft.CustomProviders/resourceProviders e Microsoft.CustomProviders/associations. Para habilitar a integração de recursos para um provedor de recursos personalizados, durante o processo de configuração, crie um resourceType chamado "associations" com um routingType que inclua "Extension". O Microsoft.CustomProviders/associations e o Microsoft.CustomProviders/resourceProviders não precisam pertencer ao mesmo grupo de recursos.

Veja um exemplo de provedor de recursos personalizados do Azure:

{
  "properties": {
    "resourceTypes": [
      {
        "name": "associations",
        "routingType": "Proxy,Cache,Extension",
        "endpoint": "https://microsoft.com/"
      }
    ]
  },
  "location": "eastus"
}
Propriedade Necessário? Descrição
name Sim O nome da definição do ponto de extremidade. Para integração de recursos, o nome deve ser "associations".
routingType Sim Determina o tipo de contrato com o ponto de extremidade. Para integração de recursos, os routingTypes válidos são "Proxy,Cache,Extension" e "Webhook,Cache,Extension".
endpoint Sim O ponto de extremidade para o qual rotear as solicitações. Isso vai gerenciar a resposta e os efeitos colaterais da solicitação.

Depois de criar o provedor de recursos personalizados com o tipo de recurso de associações, você poderá direcionar usando o Microsoft.CustomProviders/associations. Microsoft.CustomProviders/associations é um recurso de extensão que pode estender qualquer outro recurso do Azure. Quando uma instância de Microsoft.CustomProviders/associations for criada, ela usará a propriedade targetResourceId, que deve ser uma ID de recurso Microsoft.CustomProviders/resourceProviders ou Microsoft.Solutions/applications válida. Nesses casos, a solicitação será encaminhada para o tipo de recurso de associações na instância Microsoft.CustomProviders/resourceProviders que você criou.

Observação

Se uma ID de recurso Microsoft. Solutions/applications for fornecida como o targetResourceId, deverá haver um Microsoft.CustomProviders/resourceProviders implantado no grupo de recursos gerenciados com o nome "Public".

Exemplo de associação de Provedores de Recursos Personalizados do Azure:

{
  "properties": {
    "targetResourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}",
    ...
  }
}
Propriedade Necessário? Descrição
targetResourceId Sim A ID de recurso do Microsoft.CustomProviders/resourceProviders ou Microsoft.Solutions/applications.

Como usar a integração de recursos

A integração de recursos funciona estendendo outros recursos com o recurso de extensão Microsoft.CustomProviders/associations. No exemplo a seguir, a solicitação é feita para uma máquina virtual, mas qualquer recurso pode ser estendido.

Primeiro, você precisa criar um recurso de provedor de recursos personalizados com um tipo de recurso de associações. Isso vai declarar o URL de retorno de chamada que será usado quando um recurso Microsoft.CustomProviders/associations correspondente for criado, o qual se destina ao provedor de recursos personalizados.

Exemplo de solicitação de criação do 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}"
}

Depois de criar o provedor de recursos personalizados, você pode direcionar outros recursos e aplicar os efeitos colaterais do provedor de recursos personalizados a eles.

Exemplo de solicitação de criação do 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"
    }
  }
}

Essa solicitação será então encaminhada para o ponto de extremidade especificado no provedor de recursos personalizados que você criou, que é referenciado pelo targetResourceId deste formulário:

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"
    }
  }
}

O ponto de extremidade deve responder com um aplicativo/json Content-Type e um corpo de resposta JSON válido. Os campos retornados no objeto Propriedades do JSON serão adicionados à resposta de retorno da associação.

Obtendo ajuda

Em caso de dúvidas sobre os provedores personalizados do Azure, tente postar suas perguntas no Stack Overflow. Uma pergunta semelhante já pode ter sido respondida, portanto, verifique-a primeiro antes de postá-la. Adicione a marca azure-custom-providers para obter uma resposta rápida.

Próximas etapas

Neste artigo, você aprendeu sobre os provedores de recursos personalizados. Confira estes artigos para saber mais: