Avvio rapido: Creare un provider di risorse personalizzato di Azure e distribuire risorse personalizzate
In questa guida introduttiva si crea un provider di risorse personalizzato e si distribuiscono risorse personalizzate per tale provider di risorse. Per altre informazioni sui provider di risorse personalizzati, vedere Panoramica dei provider di risorse personalizzati di Azure.
Prerequisiti
- Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
- Per completare la procedura descritta in questa guida di avvio rapido, è necessario chiamare operazioni
REST
. Esistono modi diversi per inviare richieste REST.
Preparare l'ambiente per l'interfaccia della riga di comando di Azure.
Usare l'ambiente Bash in Azure Cloud Shell. Per altre informazioni, vedere Avvio rapido per Bash in Azure Cloud Shell.
Se si preferisce eseguire i comandi di riferimento dell'interfaccia della riga di comando in locale, installare l'interfaccia della riga di comando di Azure. Per l'esecuzione in Windows o macOS, è consigliabile eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker. Per altre informazioni, vedere Come eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker.
Se si usa un'installazione locale, accedere all'interfaccia della riga di comando di Azure con il comando az login. Per completare il processo di autenticazione, seguire la procedura visualizzata nel terminale. Per altre opzioni di accesso, vedere Accedere tramite l'interfaccia della riga di comando di Azure.
Quando richiesto, installare l'estensione dell'interfaccia della riga di comando di Azure al primo utilizzo. Per altre informazioni sulle estensioni, vedere Usare le estensioni con l'interfaccia della riga di comando di Azure.
Eseguire az version per trovare la versione e le librerie dipendenti installate. Per eseguire l'aggiornamento alla versione più recente, eseguire az upgrade.
Gli esempi dell'interfaccia della riga di comando di Azure usano az rest
per richieste REST
. Per altre informazioni, vedere az rest.
Distribuire un provider di risorse personalizzato
Per configurare il provider di risorse personalizzato, distribuire un modello di esempio nella sottoscrizione di Azure.
Il modello distribuisce le risorse seguenti nella sottoscrizione:
- App per le funzioni con le operazioni per le risorse e le azioni.
- Archiviazione account per l'archiviazione degli utenti creati tramite il provider di risorse personalizzato.
- Provider di risorse personalizzato che definisce i tipi di risorse e le azioni personalizzati. Usa l'endpoint dell'app per le funzioni per inviare richieste.
- Risorsa personalizzata dal provider di risorse personalizzato.
Per distribuire il provider di risorse personalizzato, usare l'interfaccia della riga di comando di Azure, PowerShell o il portale di Azure.
In questo esempio viene richiesto di specificare un gruppo di risorse, la località e il nome dell'app per le funzioni del provider. I nomi sono archiviati in variabili che vengono usate in altri comandi. I comandi az group create e az deployment group create distribuiscono le risorse.
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
Per distribuire il modello dal portale di Azure, selezionare il pulsante Distribuisci in Azure.
Visualizzare il provider di risorse e la risorsa personalizzati
Nel portale il provider di risorse personalizzato è un tipo di risorsa nascosto. Per verificare che il provider di risorse sia stato distribuito, passare al gruppo di risorse e selezionare Mostra tipi nascosti.
Per visualizzare la risorsa personalizzata distribuita, usare l'operazione GET
sul tipo di risorsa. Il tipo di Microsoft.CustomProviders/resourceProviders/users
risorsa visualizzato nella risposta JSON include la risorsa creata dal modello.
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
Si riceve la risposta:
{
"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"
}
]
}
Chiamare un'azione
Il provider di risorse personalizzato ha anche un'azione denominata ping
. Il codice che elabora la richiesta viene implementato nell'app per le funzioni. L'azione ping
risponde con un messaggio di saluto.
Per inviare una ping
richiesta, usare l'operazione POST
sull'azione.
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
Si riceve la risposta:
{
"message": "hello <function-name>.azurewebsites.net",
"pingcontent": {
"source": "<function-name>.azurewebsites.net"
}
}
Usare PUT per creare una risorsa
In questa guida introduttiva il modello usa il tipo di Microsoft.CustomProviders/resourceProviders/users
risorsa per distribuire una risorsa. È anche possibile usare un'operazione PUT
per creare una risorsa. Ad esempio, se una risorsa non viene distribuita con il modello, l'operazione PUT
creerà una risorsa.
In questo esempio, poiché il modello ha già distribuito una risorsa, l'operazione PUT
crea una nuova risorsa.
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'}}"
Si riceve la risposta:
{
"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"
}
È possibile rieseguire l'operazione GET
dalla sezione view custom resource provider and resource (Provider di risorse e risorse personalizzate) per visualizzare le due risorse create. Questo esempio mostra l'output del comando dell'interfaccia della riga di comando di 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"
}
]
}
Comandi del provider di risorse personalizzato
Usare i comandi di custom-providers per gestire il provider di risorse personalizzato.
Elencare i provider di risorse personalizzati
Il comando list
elenca tutti i provider di risorse personalizzati presenti in una sottoscrizione. Con l'impostazione predefinita vengono elencati i provider di risorse personalizzati per la sottoscrizione corrente, ma è anche possibile specificare il parametro --subscription
. Per visualizzare l'elenco per un gruppo di risorse, usare il parametro --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
}
]
Visualizzare le proprietà
Usare il comando show
per visualizzare tutte le proprietà del provider di risorse personalizzato. Il formato dell'output è simile a quello dell'output di list
.
az custom-providers resource-provider show --resource-group $rgName --name $funcName
Creazione di una nuova risorsa
Usare il comando create
per creare o aggiornare un provider di risorse personalizzato. In questo esempio vengono aggiornati actions
e 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"
}
],
Aggiornare i tag del provider
Il comando update
consente di aggiornare solo i tag per un provider di risorse personalizzato. Il tag viene visualizzato nel servizio app del provider di risorse personalizzato del portale di Azure.
az custom-providers resource-provider update --resource-group $rgName --name $funcName --tags new=tag
"tags": {
"new": "tag"
},
Eliminare un provider di risorse personalizzato
Il comando delete
chiede conferma ed elimina solo il provider di risorse personalizzato. L'account di archiviazione, il servizio app e il piano di servizio app non vengono eliminati. Dopo l'eliminazione del provider, viene nuovamente visualizzato il prompt dei comandi.
az custom-providers resource-provider delete --resource-group $rgName --name $funcName
Pulire le risorse
Se le risorse create in questo articolo sono state completate, è possibile eliminare il gruppo di risorse. Quando si elimina un gruppo di risorse, tutte le risorse in tale gruppo di risorse vengono eliminate.
az group delete --resource-group $rgName
Passaggi successivi
Per un'introduzione ai provider di risorse personalizzati, vedere l'articolo seguente: