Compartir vía


Creación y uso de un proveedor de recursos personalizado

Un proveedor de recursos personalizado es un contrato entre Azure y un punto de conexión. Gracias a los proveedores de recursos personalizados, puede cambiar los flujos de trabajo en Azure. En este tutorial se muestra el proceso de creación de un proveedor de recursos personalizado. Si no está familiarizado con los proveedores de recursos personalizados de Azure, consulte la introducción a los proveedores de recursos personalizados de Azure.

Creación de un proveedor de recursos personalizado

Nota:

En este tutorial no se muestra cómo crear un punto de conexión. Si no tiene ningún punto de conexión de RESTful, siga el tutorial sobre la creación de puntos de conexión RESTful, que es la base del tutorial actual.

Después de crear un punto de conexión, puede crear un proveedor de recursos personalizado para generar un contrato entre el proveedor y el punto de conexión. Con un proveedor de recursos personalizado puede especificar una lista de definiciones de puntos de conexión:

{
  "name": "myEndpointDefinition",
  "routingType": "Proxy",
  "endpoint": "https://<yourapp>.azurewebsites.net/api/<funcname>?code=<functionkey>"
}
Propiedad Obligatorio Descripción
name El nombre de la definición del punto de conexión. Azure expone este nombre a través de su API en /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders
/resourceProviders/{resourceProviderName}/{endpointDefinitionName}
routingType No El tipo de contrato del punto de conexión. Si no se especifica el valor, el valor predeterminado es "Proxy".
endpoint El punto de conexión al que enrutar las solicitudes. Este punto de conexión controla la respuesta, así como los efectos secundarios de la solicitud.

El valor del punto de conexión es la dirección URL del desencadenador de la aplicación de funciones de Azure. Los marcadores de posición <yourapp>, <funcname> y <functionkey> deben reemplazarse por los valores de la aplicación de funciones creada.

Definición de acciones y recursos personalizados

El proveedor de recursos personalizado contiene una lista de definiciones de punto de conexión que se modelan con las propiedades actions y resourceTypes. La propiedad actions se asigna a las acciones personalizadas expuestas por el proveedor de recursos personalizado y la propiedad resourceTypes son los recursos personalizados. En este tutorial, el proveedor de recursos personalizado tiene una propiedad actions denominada myCustomAction y una propiedad resourceTypes denominada 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"
}

Implementación de un proveedor de recursos personalizados

Nota:

Debe reemplazar los valores de endpoint por la dirección URL del desencadenador de la aplicación de funciones creada en el tutorial anterior.

Puede implementar el proveedor de recursos personalizado anterior mediante una plantilla de 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>"
                    }
                ]
            }
        }
    ]
}

Uso de acciones y recursos personalizados

Después de crear un proveedor de recursos personalizado, puede usar las nuevas API de Azure. En las siguientes secciones se explica cómo llamar a un proveedor de recursos personalizado y utilizarlo.

Acciones personalizadas

Azure CLI

Nota:

Debe reemplazar los marcadores de posición {subscriptionId} y {resourceGroupName} por la suscripción y el grupo de recursos donde implementó el proveedor 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 Obligatorio Descripción
action El nombre de la acción definida en el proveedor de recursos personalizado.
ids El identificador del recurso del proveedor de recursos personalizado.
request-body No El cuerpo de la solicitud que se enviará al punto de conexión.

Recursos personalizados

Nota

Debe reemplazar los marcadores de posición {subscriptionId} y {resourceGroupName} por la suscripción y el grupo de recursos donde implementó el proveedor de recursos personalizado.

Creación de un 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 Obligatorio Descripción
is-full-object Indica que el objeto properties incluye otras opciones, como ubicación, etiquetas, SKU o plan.
id Id. de recurso del recurso personalizado. Este identificador es una extensión del identificador de recursos del proveedor de recursos personalizado.
properties El cuerpo de la solicitud que se enviará al punto de conexión.

Eliminación de un recurso personalizado

az resource delete --id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/myCustomProvider/myCustomResources/myTestResourceName1
Parámetro Obligatorio Descripción
id Id. de recurso del recurso personalizado. Este identificador es una extensión del identificador de recursos del proveedor de recursos personalizado.

Recuperación de un recurso personalizado

az resource show --id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/myCustomProvider/myCustomResources/myTestResourceName1
Parámetro Obligatorio Descripción
id Id. de recurso del recurso personalizado. Este identificador es una extensión del identificador de recursos del proveedor de recursos personalizado.

Nota:

Cuando haya terminado de implementar y usar el proveedor de recursos personalizado, recuerde limpiar todos los recursos creados, incluida la aplicación de funciones de Azure.

Pasos siguientes

En este artículo, ha obtenido información sobre los proveedores de recursos personalizados. Para más información, consulte: