Creare e usare un provider di risorse personalizzato

Un provider di risorse personalizzato è un contratto tra Azure e un endpoint. Con i provider di risorse personalizzati, è possibile cambiare i flussi di lavoro in Azure. Questa esercitazione illustra il processo di creazione di un provider di risorse personalizzato. Se non si ha familiarità con i provider di risorse personalizzati di Azure, vedere la panoramica dei provider di risorse personalizzati di Azure.

Creare un provider di risorse personalizzato

Nota

Questa esercitazione non mostra come creare un endpoint. Se non è disponibile un endpoint RESTFUL, seguire l'esercitazione sulla creazione di endpoint RESTful, che rappresenta la base per l'esercitazione corrente.

Dopo aver creato un endpoint, è possibile creare un provider di risorse personalizzato per generare un contratto tra il provider e l'endpoint. Con un provider di risorse personalizzato, è possibile specificare un elenco di definizioni di endpoint:

{
  "name": "myEndpointDefinition",
  "routingType": "Proxy",
  "endpoint": "https://<yourapp>.azurewebsites.net/api/<funcname>?code=<functionkey>"
}
Proprietà Richiesto Descrizione
name Nome della definizione dell'endpoint. Azure espone questo nome tramite l'API in /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders
/resourceProviders/{resourceProviderName}/{endpointDefinitionName}
routingType No Il tipo di contratto dell'endpoint. Se non si specifica un valore, viene usata l'impostazione predefinita "Proxy".
endpoint Endpoint a cui indirizzare le richieste. Gestisce la risposta, nonché eventuali effetti collaterali della richiesta.

Il valore di endpoint è l'URL del trigger dell'app per le funzioni di Azure. I segnaposto <yourapp>, <funcname> e <functionkey> devono essere sostituiti con i valori dell'app per le funzioni creata.

Definire azioni e risorse personalizzate

Il provider di risorse personalizzato contiene un elenco di definizioni di endpoint modellate nelle proprietà actions e resourceTypes. La proprietà actions corrisponde alle azioni personalizzate esposte dal provider di risorse personalizzato, mentre la proprietà resourceTypes rappresenta le risorse personalizzate. In questa esercitazione il provider di risorse personalizzato include una proprietà actions denominata myCustomAction e una proprietà resourceTypes denominata 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"
}

Distribuire il provider di risorse personalizzato

Nota

È necessario sostituire i valori di endpoint con l'URL del trigger dell'app per le funzioni creata nell'esercitazione precedente.

Per distribuire il provider di risorse personalizzato descritto in precedenza, è possibile usare un modello di 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>"
                    }
                ]
            }
        }
    ]
}

Usare azioni e risorse personalizzate

Dopo aver creato un provider di risorse personalizzato, è possibile usare le nuove API di Azure. Le sezioni seguenti illustrano come chiamare e usare un provider di risorse personalizzato.

Azioni personalizzate

Interfaccia della riga di comando di Azure

Nota

È necessario sostituire i segnaposto {subscriptionId} e {resourceGroupName} con la sottoscrizione e il gruppo di risorse in cui è stato distribuito il provider di risorse personalizzato.

az resource invoke-action --action myCustomAction \
                          --ids /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/myCustomProvider \
                          --request-body
                            '{
                                "hello": "world"
                            }'
Parametro Richiesto Descrizione
azione Il nome dell'azione definita nel provider di risorse personalizzato.
ids ID risorsa del provider di risorse personalizzato.
request-body No Il corpo della richiesta che verrà inviato all'endpoint.

Risorse personalizzate

Nota

È necessario sostituire i segnaposto {subscriptionId} e {resourceGroupName} con la sottoscrizione e il gruppo di risorse in cui è stato distribuito il provider di risorse personalizzato.

Creare una risorsa personalizzata

az resource create --is-full-object \
                   --id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/myCustomProvider/myCustomResources/myTestResourceName1 \
                   --properties
                    '{
                        "location": "eastus",
                        "properties": {
                            "hello" : "world"
                        }
                    }'
Parametro Richiesto Descrizione
is-full-object Indica se l'oggetto proprietà include altre opzioni, come posizione, tag, SKU o piano.
id ID della risorsa personalizzata. Questo ID è un'estensione dell'ID risorsa del provider di risorse personalizzato.
properties Il corpo della richiesta che verrà inviato all'endpoint.

Eliminare una risorsa personalizzata

az resource delete --id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/myCustomProvider/myCustomResources/myTestResourceName1
Parametro Richiesto Descrizione
id ID della risorsa personalizzata. Questo ID è un'estensione dell'ID risorsa del provider di risorse personalizzato.

Recuperare una risorsa personalizzata

az resource show --id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/myCustomProvider/myCustomResources/myTestResourceName1
Parametro Richiesto Descrizione
id ID della risorsa personalizzata. Questo ID è un'estensione dell'ID risorsa del provider di risorse personalizzato.

Nota

Dopo aver completato la distribuzione e aver usato il provider di risorse personalizzato, ricordarsi di pulire tutte le risorse create, inclusa l'app per le funzioni di Azure.

Passaggi successivi

In questo articolo sono state fornite informazioni sui provider personalizzati. Per altre informazioni, vedi: