Share via


Criar e usar um provedor de recursos personalizado

Um provedor de recursos personalizado é um contrato entre o Azure e um ponto de extremidade. Com provedores de recursos personalizados, você pode alterar os fluxos de trabalho no Azure. Este tutorial mostra o processo de criação de um provedor de recursos personalizado. Se você não estiver familiarizado com os provedores de recursos personalizados do Azure, veja a visão geral dos provedores de recursos personalizados do Azure.

Criar um provedor de recursos personalizado

Observação

Este tutorial não mostra como criar um ponto de extremidade. Caso não tenha um ponto de extremidade RESTful, siga o tutorial sobre como criar pontos de extremidade RESTful, que é a base para o tutorial atual.

Depois de criar um ponto de extremidade, você pode criar um provedor de recursos personalizado para gerar um contrato entre o provedor e o ponto de extremidade. Com um provedor de recursos personalizado, você pode especificar uma lista de definições de ponto de extremidade:

{
  "name": "myEndpointDefinition",
  "routingType": "Proxy",
  "endpoint": "https://<yourapp>.azurewebsites.net/api/<funcname>?code=<functionkey>"
}
Propriedade Obrigatório Descrição
name Sim O nome da definição do ponto de extremidade. O Azure expõe esse nome por meio de sua API em /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders
/resourceProviders/{resourceProviderName}/{endpointDefinitionName}
routingType Não O tipo de contrato do ponto de extremidade. Se o valor não for especificado, ele usará "Proxy" como padrão.
endpoint Sim O ponto de extremidade para o qual rotear as solicitações. Esse ponto de extremidade manipula a resposta e os efeitos colaterais da solicitação.

O valor do ponto de extremidade é a URL do gatilho do aplicativo de funções do Azure. Os espaços reservados <yourapp>, <funcname> e <functionkey> precisam ser substituídos por valores para o aplicativo de funções criado.

Definir ações e recursos personalizados

O provedor de recursos personalizado contém uma lista de definições de terminal modeladas nas propriedades actions e resourceTypes. A propriedade actions mapeia para as ações personalizadas expostas pelo provedor de recursos personalizados e a propriedade resourceTypes são os recursos personalizados. Neste tutorial, o provedor de recursos personalizado tem uma propriedade actions chamada myCustomAction e uma propriedade resourceTypes chamada myCustomResources.

{
  "properties": {
    "actions": [
      {
        "name": "myCustomAction",
        "routingType": "Proxy",
        "endpoint": "https://<yourapp>.azurewebsites.net/api/<funcname>?code=<functionkey>"
      }
    ],
    "resourceTypes": [
      {
        "name": "myCustomResources",
        "routingType": "Proxy",
        "endpoint": "https://<yourapp>.azurewebsites.net/api/<funcname>?code=<functionkey>"
      }
    ]
  },
  "location": "eastus"
}

Implantar o provedor de recursos personalizado

Observação

É necessário substituir os valores do ponto de extremidade pela URL do gatilho no aplicativo de funções criado no tutorial anterior.

Você pode implantar o provedor de recursos personalizado anterior usando um modelo do Azure Resource Manager:

{
    "$schema": "http://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [
        {
            "type": "Microsoft.CustomProviders/resourceProviders",
            "name": "myCustomProvider",
            "apiVersion": "2018-09-01-preview",
            "location": "eastus",
            "properties": {
                "actions": [
                    {
                        "name": "myCustomAction",
                        "routingType": "Proxy",
                        "endpoint": "https://<yourapp>.azurewebsites.net/api/<funcname>?code=<functionkey>"
                    }
                ],
                "resourceTypes": [
                    {
                        "name": "myCustomResources",
                        "routingType": "Proxy",
                        "endpoint": "https://<yourapp>.azurewebsites.net/api/<funcname>?code=<functionkey>"
                    }
                ]
            }
        }
    ]
}

Usar ações e recursos personalizados

Depois de criar um provedor de recursos personalizado, use as novas APIs do Azure. As seções a seguir explicam como chamar e usar um provedor de recursos personalizado.

Ações personalizadas

CLI do Azure

Observação

Substitua os espaços reservados {subscriptionId} e {resourceGroupName} pela assinatura e pelo grupo de recursos nos quais você implantou o provedor de recursos personalizado.

az resource invoke-action --action myCustomAction \
                          --ids /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/myCustomProvider \
                          --request-body
                            '{
                                "hello": "world"
                            }'
Parâmetro Obrigatório Descrição
action Sim O nome da ação definida no provedor de recursos personalizado.
ids Sim O ID do recurso do provedor de recursos personalizado.
request-body Não O corpo da solicitação que será enviado ao ponto de extremidade.

Recursos personalizados

Observação

Substitua os espaços reservados {subscriptionId} e {resourceGroupName} pela assinatura e pelo grupo de recursos nos quais você implantou o provedor de recursos personalizado.

Criar um recurso personalizado

az resource create --is-full-object \
                   --id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/myCustomProvider/myCustomResources/myTestResourceName1 \
                   --properties
                    '{
                        "location": "eastus",
                        "properties": {
                            "hello" : "world"
                        }
                    }'
Parâmetro Obrigatório Descrição
is-full-object Sim Indica se o objeto de propriedades inclui outras opções, como localização, marcas, SKU ou plano.
id Sim A ID de recurso referente ao recurso personalizado. Essa ID é uma extensão da ID do recurso do provedor de recursos personalizado.
properties Sim O corpo da solicitação que será enviado ao ponto de extremidade.

Excluir um recurso personalizado

az resource delete --id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/myCustomProvider/myCustomResources/myTestResourceName1
Parâmetro Obrigatório Descrição
id Sim A ID de recurso referente ao recurso personalizado. Essa ID é uma extensão da ID do recurso do provedor de recursos personalizado.

Recuperar um recurso personalizado

az resource show --id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/myCustomProvider/myCustomResources/myTestResourceName1
Parâmetro Obrigatório Descrição
id Sim A ID de recurso referente ao recurso personalizado. Essa ID é uma extensão da ID do recurso do provedor de recursos personalizado.

Observação

Depois de concluir a implantação e o uso do provedor de recursos personalizado, lembre-se de limpar todos os recursos criados, incluindo o aplicativo de funções do Azure.

Próximas etapas

Neste artigo, você aprendeu sobre os provedores de recursos personalizados. Para obter mais informações, consulte: