Inicio rápido: Creación de un proveedor de recursos personalizados de Azure e implementación de recursos personalizados
En este inicio rápido, creará un proveedor de recursos personalizado e implementará distintos recursos personalizados para dicho proveedor de recursos. Para más información sobre los proveedores de recursos personalizados, consulte Información general sobre proveedores de recursos personalizados de Azure.
Prerrequisitos
- 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. Para más información, consulte Inicio rápido para Bash en Azure Cloud Shell.
Si prefiere ejecutar comandos de referencia de la CLI localmente, instale la CLI de Azure. Si utiliza Windows o macOS, considere la posibilidad de ejecutar la CLI de Azure en un contenedor Docker. Para más información, vea Ejecución de la CLI de Azure en un contenedor de Docker.
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.
En caso de que 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 de recursos personalizados
Para configurar el proveedor de recursos personalizado, implemente una plantilla de ejemplo en su suscripción de Azure.
La plantilla implementa los siguientes recursos en la suscripción:
- Aplicación de funciones con las operaciones para los recursos y las acciones.
- Cuenta de almacenamiento para almacenar los usuarios que se crean mediante el proveedor de recursos personalizado.
- Proveedor de recursos 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 de recursos personalizado.
Para implementar el proveedor de recursos 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
Para implementar la plantilla desde Azure Portal, seleccione el botón Implementar en Azure.
Ver recurso y proveedor de recursos personalizado
En el portal, el proveedor de recursos personalizado es un tipo de recurso oculto. Para confirmar que se implementó el proveedor de recursos, vaya al grupo de recursos y seleccione Mostrar tipos ocultos.
Para ver el recurso personalizado que ha implementado, use la operación GET
en el tipo de recurso. El tipo de recurso Microsoft.CustomProviders/resourceProviders/users
que se muestra en la respuesta JSON incluye el recurso creado por la plantilla.
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/ana",
"name": "ana",
"properties": {
"FullName": "Ana Bowman",
"Location": "Moon",
"provisioningState": "Succeeded"
},
"type": "Microsoft.CustomProviders/resourceProviders/users"
}
]
}
Acción llamar
El proveedor de recursos 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 la acción.
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"
}
}
Use PUT para crear un recurso
En este inicio rápido, la plantilla usó el tipo de recurso Microsoft.CustomProviders/resourceProviders/users
para implementar un recurso. También puede usar una operación PUT
para crear un recurso. Por ejemplo, si un recurso no se implementa con la plantilla, la operación PUT
creará un recurso.
En este ejemplo, dado que la plantilla ya ha implementado un recurso, la operación PUT
crea un nuevo 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"
},
"type": "Microsoft.CustomProviders/resourceProviders/users"
}
Puede volver a ejecutar la operación GET
desde la sección ver el proveedor de recursos personalizado y el recurso para mostrar los dos recursos que se crearon. En este ejemplo se muestra la salida del comando de la CLI de Azure.
{
"value": [
{
"id": "/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceProviders/<provider-name>/users/ana",
"name": "ana",
"properties": {
"FullName": "Ana Bowman",
"Location": "Moon",
"provisioningState": "Succeeded"
},
"type": "Microsoft.CustomProviders/resourceProviders/users"
},
{
"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"
},
"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
Limpieza de recursos
Cuando haya terminado con los recursos creados en este artículo, puede eliminar el grupo de recursos. Al eliminar un grupo de recursos, se eliminan todos los recursos que contiene.
az group delete --resource-group $rgName
Pasos siguientes
En el siguiente artículo puede encontrar una introducción a los proveedores de recursos personalizados: