Inicio rápido: Creación de un proveedor de recursos e implementación de recursos personalizados
En este inicio rápido, creará su propio proveedor de recursos e implementará distintos tipos de recursos personalizados para dicho proveedor de recursos. Para más información sobre los proveedores personalizados, vea la introducción a los proveedores personalizados de Azure en versión preliminar.
Requisitos previos
- Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
- Para completar los pasos de este inicio rápido, es preciso llamar a operaciones
REST. Hay distintas formas de enviar solicitudes REST.
Prepare el entorno para la CLI de Azure.
Use el entorno de Bash en Azure Cloud Shell.
Si lo prefiere, instale la CLI de Azure para ejecutar sus comandos de referencia.
Si usa una instalación local, inicie sesión en la CLI de Azure mediante el comando az login. Siga los pasos que se muestran en el terminal para completar el proceso de autenticación. Para ver otras opciones de inicio de sesión, consulte Inicio de sesión con la CLI de Azure.
Cuando se le solicite, instale las extensiones de la CLI de Azure la primera vez que la use. Para más información sobre las extensiones, consulte Uso de extensiones con la CLI de Azure.
Ejecute az version para buscar cuál es la versión y las bibliotecas dependientes que están instaladas. Para realizar la actualización a la versión más reciente, ejecute az upgrade.
Los ejemplos de la CLI de Azure usan az rest para las solicitudes de REST. Para más información, consulte az rest.
Implementación de un proveedor personalizado
Para configurar el proveedor personalizado, implemente una plantilla de ejemplo en su suscripción de Azure.
Después de implementar la plantilla, la suscripción tiene los siguientes recursos:
- Aplicación de función con las operaciones para los recursos y las acciones.
- Cuenta de almacenamiento para almacenar los usuarios que se crean mediante el proveedor personalizado.
- Proveedor personalizado que define las acciones y los tipos de recursos personalizados. Usa el punto de conexión de la aplicación de función para enviar las solicitudes.
- Recurso personalizado del proveedor personalizado.
Para implementar el proveedor personalizado, use la CLI de Azure, PowerShell o Azure Portal:
En este ejemplo se le pide que especifique un grupo de recursos, la ubicación y el nombre de la aplicación de función del proveedor. Los nombres se almacenan en variables que se usan en otros comandos. Los comandos az group create y az deployment group create implementan los recursos.
read -p "Enter a resource group name:" rgName &&
read -p "Enter the location (i.e. eastus):" location &&
read -p "Enter the provider's function app name:" funcName &&
templateUri="https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/custom-providers/customprovider.json" &&
az group create --name $rgName --location "$location" &&
az deployment group create --resource-group $rgName --template-uri $templateUri --parameters funcName=$funcName &&
echo "Press [ENTER] to continue ..." &&
read
También puede implementar la solución desde Azure Portal. Haga clic en el botón Implementar en Azure para abrir la plantilla en Azure Portal.
Ver recurso y proveedor personalizado
En el portal, el proveedor personalizado es un tipo de recurso oculto. Para confirmar que se ha implementado el proveedor de recursos, vaya al grupo de recursos. Seleccione la opción Mostrar tipos ocultos.

Para ver el tipo de recurso personalizado que ha implementado, use la operación GET en el tipo de recurso.
GET https://management.azure.com/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceProviders/<provider-name>/users?api-version=2018-09-01-preview
subID=$(az account show --query id --output tsv)
requestURI="https://management.azure.com/subscriptions/$subID/resourceGroups/$rgName/providers/Microsoft.CustomProviders/resourceProviders/$funcName/users?api-version=2018-09-01-preview"
az rest --method get --uri $requestURI
Recibirá la respuesta:
{
"value": [
{
"id": "/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceProviders/<provider-name>/users/santa",
"name": "santa",
"properties": {
"FullName": "Santa Claus",
"Location": "NorthPole",
"provisioningState": "Succeeded"
},
"resourceGroup": "<rg-name>",
"type": "Microsoft.CustomProviders/resourceProviders/users"
}
]
}
Acción llamar
El proveedor personalizado también tiene una acción denominada ping. El código que procesa la solicitud se implementa en la aplicación de función. La acción ping responde con un saludo.
Para enviar una solicitud ping, use la operación POST en su proveedor personalizado.
POST https://management.azure.com/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceProviders/<provider-name>/ping?api-version=2018-09-01-preview
pingURI="https://management.azure.com/subscriptions/$subID/resourceGroups/$rgName/providers/Microsoft.CustomProviders/resourceProviders/$funcName/ping?api-version=2018-09-01-preview"
az rest --method post --uri $pingURI
Recibirá la respuesta:
{
"message": "hello <function-name>.azurewebsites.net",
"pingcontent": {
"source": "<function-name>.azurewebsites.net"
}
}
Creación de un tipo de recurso
Para crear el tipo de recurso personalizado, puede implementar el recurso en una plantilla. Este método se muestra en la plantilla que se ha implementado en este inicio rápido. También puede enviar una solicitud PUT para el tipo de recurso.
PUT https://management.azure.com/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceProviders/<provider-name>/users/<resource-name>?api-version=2018-09-01-preview
{"properties":{"FullName": "Test User", "Location": "Earth"}}
addURI="https://management.azure.com/subscriptions/$subID/resourceGroups/$rgName/providers/Microsoft.CustomProviders/resourceProviders/$funcName/users/testuser?api-version=2018-09-01-preview"
az rest --method put --uri $addURI --body "{'properties':{'FullName': 'Test User', 'Location': 'Earth'}}"
Recibirá la respuesta:
{
"id": "/subscriptions/<sub-ID>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceProviders/<provider-name>/users/testuser",
"name": "testuser",
"properties": {
"FullName": "Test User",
"Location": "Earth",
"provisioningState": "Succeeded"
},
"resourceGroup": "<rg-name>",
"type": "Microsoft.CustomProviders/resourceProviders/users"
}
Comandos del proveedor de recursos personalizado
Use los comandos custom-providers para trabajar con el proveedor de recursos personalizado.
Enumeración de los proveedores de recursos personalizados
Use el comando list para mostrar todos los proveedores de recursos personalizados en una suscripción. De forma predeterminada, se enumeran los proveedores de recursos personalizados de la suscripción actual, o puede especificar el parámetro --subscription. Para enumerar un grupo de recursos, use el parámetro --resource-group.
az custom-providers resource-provider list --subscription $subID
[
{
"actions": [
{
"endpoint": "https://<provider-name>.azurewebsites.net/api/{requestPath}",
"name": "ping",
"routingType": "Proxy"
}
],
"id": "/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceproviders/<provider-name>",
"location": "eastus",
"name": "<provider-name>",
"provisioningState": "Succeeded",
"resourceGroup": "<rg-name>",
"resourceTypes": [
{
"endpoint": "https://<provider-name>.azurewebsites.net/api/{requestPath}",
"name": "users",
"routingType": "Proxy, Cache"
}
],
"tags": {},
"type": "Microsoft.CustomProviders/resourceproviders",
"validations": null
}
]
Presentación de las propiedades
Use el comando show para mostrar las propiedades del proveedor de recursos personalizado. El formato de salida es similar a la salida de list.
az custom-providers resource-provider show --resource-group $rgName --name $funcName
Crear un nuevo recurso
Use el comando create para crear o actualizar un proveedor de recursos personalizado. En este ejemplo se actualizan actions y resourceTypes.
az custom-providers resource-provider create --resource-group $rgName --name $funcName \
--action name=ping endpoint=https://myTestSite.azurewebsites.net/api/{requestPath} routing_type=Proxy \
--resource-type name=users endpoint=https://myTestSite.azurewebsites.net/api/{requestPath} routing_type="Proxy, Cache"
"actions": [
{
"endpoint": "https://myTestSite.azurewebsites.net/api/{requestPath}",
"name": "ping",
"routingType": "Proxy"
}
],
"resourceTypes": [
{
"endpoint": "https://myTestSite.azurewebsites.net/api/{requestPath}",
"name": "users",
"routingType": "Proxy, Cache"
}
],
Actualización de las etiquetas del proveedor
El comando update solo actualiza las etiquetas de un proveedor de recursos personalizado. En Azure Portal, el servicio de aplicaciones del proveedor de recursos personalizado muestra la etiqueta.
az custom-providers resource-provider update --resource-group $rgName --name $funcName --tags new=tag
"tags": {
"new": "tag"
},
Eliminación de un proveedor de recursos personalizado
El comando delete le avisa y elimina solo el proveedor de recursos personalizado. No se eliminan la cuenta de almacenamiento, el servicio de aplicaciones y el plan del servicio de aplicaciones. Una vez eliminado el proveedor, regresa a un símbolo del sistema.
az custom-providers resource-provider delete --resource-group $rgName --name $funcName
Pasos siguientes
En el siguiente artículo puede encontrar una introducción a los proveedores personalizados:
