Descrição geral da inclusão de recursos dos Fornecedores de Recursos Personalizados do Azure

A integração de recursos dos Fornecedores de Recursos Personalizados do Azure é um modelo de extensibilidade para tipos de recursos do Azure. Permite-lhe aplicar operações ou gestão em recursos existentes do Azure em escala. Para obter mais informações, veja Como os Fornecedores de Recursos Personalizados do Azure podem expandir o Azure. Este artigo descreve:

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

Importante

Os Fornecedores de Recursos Personalizados estão atualmente em pré-visualização pública. Esta versão de pré-visualização é fornecida sem um contrato de nível de serviço e não a recomendamos para cargas de trabalho de produção. Determinadas funcionalidades podem não ser suportadas ou podem ter capacidades restritas. Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.

O que pode fazer a inclusão de recursos?

À semelhança dos recursos personalizados dos Fornecedores de Recursos Personalizados do Azure, a inclusão de recursos define um contrato que irá "integrar" pedidos de proxy para um ponto final. Ao contrário dos recursos personalizados, a integração de recursos não cria um novo tipo de recurso. Em vez disso, permite a extensão de tipos de recursos existentes. Além disso, a integração de recursos funciona com Azure Policy, pelo que a gestão e a configuração dos recursos podem ser feitas em escala. Alguns exemplos de fluxos de trabalho de integração de recursos:

  • Instale e faça a gestão em extensões de máquina virtual.
  • Carregar e configurar predefinições em contas de armazenamento do Azure.
  • Ative as definições de diagnóstico de linha de base em escala.

Noções básicas de inclusão de recursos

Pode configurar a integração de recursos através de Fornecedores de Recursos Personalizados do Azure com os tipos de recursos Microsoft.CustomProviders/resourceProviders e Microsoft.CustomProviders/associations. Para ativar a integração de recursos para um fornecedor de recursos personalizado, durante o processo de configuração, crie um resourceType chamado "associações" com um routingType que inclua "Extensão". Os Microsoft.CustomProviders/associations e Microsoft.CustomProviders/resourceProviders não precisam de pertencer ao mesmo grupo de recursos.

Eis um exemplo de fornecedor 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 Yes O nome da definição do ponto final. Para integração de recursos, o nome tem de ser "associações".
routingType Yes Determina o tipo de contrato com o ponto final. Para integração de recursos, os routingTypes válidos são "Proxy, Cache, Extensão" e "Webhook, Cache,Extensão".
endpoint Yes O ponto final para onde encaminhar os pedidos. Isto irá processar a resposta e quaisquer efeitos colaterais do pedido.

Depois de criar o fornecedor de recursos personalizado com o tipo de recurso de associações, pode ter como destino a utilização de Microsoft.CustomProviders/associations. Microsoft.CustomProviders/associations é um recurso de extensão que pode expandir qualquer outro recurso do Azure. Quando é criada uma instância de Microsoft.CustomProviders/associations, será necessário um targetResourceId de propriedade, que deve ser um ID de recurso microsoft.CustomProviders/resourceProviders válido ou Microsoft.Solutions/applications. Nestes casos, o pedido será reencaminhado para o tipo de recurso de associações na instância Microsoft.CustomProviders/resourceProviders que criou.

Nota

Se for fornecido um ID de recurso Microsoft.Solutions/applications como targetResourceId, tem de existir um Microsoft.CustomProviders/resourceProviders implementado no grupo de recursos gerido com o nome "público".

Associação de Fornecedores de Recursos Personalizados do Azure de exemplo:

{
  "properties": {
    "targetResourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}",
    ...
  }
}
Propriedade Necessário? Description
targetResourceId Yes O ID de recurso dos Microsoft.CustomProviders/resourceProviders ou Microsoft.Solutions/applications.

Como utilizar a inclusão de recursos

A integração de recursos funciona ao expandir outros recursos com o recurso de extensão Microsoft.CustomProviders/associations. No exemplo seguinte, o pedido é feito para uma máquina virtual, mas qualquer recurso pode ser expandido.

Primeiro, tem de criar um recurso de fornecedor de recursos personalizado com um tipo de recurso de associações. Esta ação irá declarar o URL de chamada de retorno que será utilizado quando for criado um recurso Microsoft.CustomProviders/associations correspondente, que visa o fornecedor de recursos personalizado.

Pedido de criação microsoft.CustomProviders/resourceProviders de exemplo:

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 fornecedor de recursos personalizado, pode direcionar outros recursos e aplicar-lhes os efeitos colaterais do fornecedor de recursos personalizado.

Pedido de criação de exemplo 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"
    }
  }
}

Em seguida, este pedido será reencaminhado para o ponto final especificado no fornecedor de recursos personalizado que criou, que é referenciado pelo targetResourceId neste 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 final deve responder com uma aplicação/json Content-Type e um corpo de resposta JSON válido. Os campos devolvidos no objeto de propriedades do JSON serão adicionados à resposta de retorno da associação.

Obter ajuda

Se tiver dúvidas sobre o desenvolvimento de Fornecedores de Recursos Personalizados do Azure, experimente perguntar-lhes no Stack Overflow. Uma pergunta semelhante pode já ter sido respondida, por isso, verifique primeiro antes de publicar. Adicione a etiqueta azure-custom-providers para obter uma resposta rápida!

Passos seguintes

Neste artigo, ficou a conhecer os fornecedores de recursos personalizados. Veja estes artigos para saber mais: