Compartir a través de


Inicio rápido: Creación de un proveedor de recursos personalizado de Azure e implementación de recursos personalizados

En este inicio rápido, creará un proveedor de recursos personalizado e implementará recursos personalizados para ese proveedor de recursos. Para más información sobre los proveedores de recursos personalizados, consulte Introducción a los proveedores de recursos personalizados de Azure.

Prerrequisitos

Prepare el entorno para la CLI de Azure.

Los ejemplos de la CLI de Azure usan az rest para las REST peticiones. Para obtener más información, consulte az rest.

Implementación del proveedor de recursos personalizado

Para configurar el proveedor de recursos personalizado, implemente una plantilla de ejemplo en la 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 usuarios creados a través del proveedor de recursos personalizado.
  • Proveedor de recursos personalizado que define los tipos y acciones de recursos personalizados. Usa el punto de conexión de la aplicación de funciones para enviar solicitudes.
  • Recurso personalizado del proveedor de recursos personalizados.

Para implementar el proveedor de recursos personalizado, use la CLI de Azure, PowerShell o Azure Portal.

En este ejemplo se le pide que escriba un grupo de recursos, una ubicación y el nombre de la aplicación de funciones 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 .

Botón para implementar la plantilla de Resource Manager en Azure.

Ver el proveedor de recursos personalizado y el recurso

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.

Captura de pantalla de Azure Portal en la que se muestran los tipos de recursos ocultos y los recursos implementados en un grupo de recursos.

Para ver el recurso personalizado que ha implementado, use la operación GET en su tipo de recurso. El tipo Microsoft.CustomProviders/resourceProviders/users de recurso 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"
    }
  ]
}

Llamada a la acción

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 funciones. La ping acción responde con un saludo.

Para enviar una ping solicitud, utilice la operación POST en su 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"
  }
}

Uso de PUT para crear un recurso

En este inicio rápido, la plantilla usó el tipo Microsoft.CustomProviders/resourceProviders/users de recurso para implementar un recurso. También puede usar una PUT operación para crear un recurso. Por ejemplo, si un recurso no se implementa con la plantilla, la PUT operación creará un recurso.

En este ejemplo, dado que la plantilla ya ha implementado un recurso, la PUT operación 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 GET operación desde la vista del proveedor de recursos personalizado y la sección de recursos 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 de proveedor de recursos personalizados

Use los comandos de proveedores personalizados para trabajar con el proveedor de recursos personalizado.

Enumeración de proveedores de recursos personalizados

Use el list comando para mostrar todos los proveedores de recursos personalizados en una suscripción. El valor predeterminado enumera los proveedores de recursos personalizados de la suscripción actual o puede especificar el --subscription parámetro . Para enumerar un grupo de recursos, use el --resource-group parámetro .

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
  }
]

Mostrar las propiedades

Use el show comando para mostrar las propiedades del proveedor de recursos personalizados. El formato de salida es similar a la list salida.

az custom-providers resource-provider show --resource-group $rgName --name $funcName

Creación de un nuevo recurso

Use el create comando para crear o actualizar un proveedor de recursos personalizado. En este ejemplo se actualizan los 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"
  }
],

Actualizar las etiquetas del proveedor

El update comando solo actualiza las etiquetas de un proveedor de recursos personalizado. En el portal de Azure, el servicio de aplicación 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 solicita una acción y elimina solo el proveedor de recursos personalizado. La cuenta de almacenamiento, el servicio de aplicaciones y el plan de servicio de aplicaciones no se eliminan. Una vez eliminado el proveedor, se le devuelve a la consola de comandos.

az custom-providers resource-provider delete --resource-group $rgName --name $funcName

Limpieza de recursos

Si ha 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 de ese grupo de recursos.

az group delete --resource-group $rgName

Pasos siguientes

Para obtener una introducción a los proveedores de recursos personalizados, consulte el siguiente artículo: