Informazioni di riferimento per la cache di risorse personalizzate
Questo articolo illustra i requisiti per gli endpoint che implementano risorse personalizzate cache. Se non si ha familiarità con i provider di risorse personalizzate di Azure, vedere la panoramica dei provider di risorse personalizzate.
Definire un endpoint di risorsa della cache
È possibile creare una risorsa proxy specificando routingType
in "Proxy", “Cache”.
Esempio di provider di risorse personalizzate:
{
"properties": {
"resourceTypes": [
{
"name": "myCustomResources",
"routingType": "Proxy, Cache",
"endpoint": "https://{endpointURL}/"
}
]
},
"location": "eastus",
"type": "Microsoft.CustomProviders/resourceProviders",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}",
"name": "{resourceProviderName}"
}
Creare un endpoint di risorsa proxy
Un endpoint che implementa un endpoint di risorsa "Proxy, Cache" deve gestire la richiesta e la risposta per la nuova API in Azure. In questo caso, il resourceType genererà una nuova API delle risorse di Azure per PUT
, GET
e DELETE
per eseguire CRUD su una singola risorsa, nonché GET
per recuperare tutte le risorse esistenti.
Nota
L'API di Azure genererà i metodi di richiesta PUT
, GET
e DELETE
, ma è necessario che l'endpoint della cache gestisca solo PUT
e DELETE
.
È consigliabile implementare anche l'endpoint GET
.
Creare una risorsa personalizzata
Richiesta in ingresso dell'API di Azure:
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}?api-version=2018-09-01-preview
Authorization: Bearer eyJ0e...
Content-Type: application/json
{
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3" : "myPropertyValue3"
}
}
}
Questa richiesta verrà quindi inoltrata all'endpoint nel modulo:
PUT https://{endpointURL}/?api-version=2018-09-01-preview
Content-Type: application/json
X-MS-CustomProviders-RequestPath: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}
{
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3" : "myPropertyValue3"
}
}
}
La risposta dell'endpoint viene quindi reinoltrata al cliente. La risposta deve restituire:
- Un documento oggetto JSON valido. Tutte le matrici e le stringhe devono essere annidate in un oggetto superiore.
- L'intestazione
Content-Type
deve essere impostata su "application/json; charset=utf-8". - Il provider di risorse personalizzate sovrascriverà i campi
name
,type
eid
per la richiesta. - Il provider di risorse personalizzate restituirà solo i campi nell'oggetto
properties
per un endpoint della cache.
Risposta dell'endpoint:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3" : "myPropertyValue3"
}
}
}
I campi name
, id
e type
verranno generati automaticamente per la risorsa personalizzata dal provider di risorse personalizzate.
Risposta del provider di risorse personalizzate di Azure:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"name": "{myCustomResourceName}",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}",
"type": "Microsoft.CustomProviders/resourceProviders/myCustomResources",
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3" : "myPropertyValue3"
}
}
}
Rimuovere una risorsa personalizzata
Richiesta in ingresso dell'API di Azure:
Delete https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}?api-version=2018-09-01-preview
Authorization: Bearer eyJ0e...
Content-Type: application/json
Questa richiesta verrà quindi inoltrata all'endpoint nel modulo:
Delete https://{endpointURL}/?api-version=2018-09-01-preview
Content-Type: application/json
X-MS-CustomProviders-RequestPath: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}
La risposta dell'endpoint viene quindi reinoltrata al cliente. La risposta deve restituire:
- Un documento oggetto JSON valido. Tutte le matrici e le stringhe devono essere annidate in un oggetto superiore.
- L'intestazione
Content-Type
deve essere impostata su "application/json; charset=utf-8". - Il provider di risorse personalizzate di Azure rimuoverà l'elemento dalla cache solo se viene restituita una risposta a 200 livelli. Anche se la risorsa non esiste, l'endpoint deve restituire il 204.
Risposta dell'endpoint:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Risposta del provider di risorse personalizzate di Azure:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Recuperare una risorsa personalizzata
Richiesta in ingresso dell'API di Azure:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}?api-version=2018-09-01-preview
Authorization: Bearer eyJ0e...
Content-Type: application/json
La richiesta non verrà inoltrata all'endpoint.
Risposta del provider di risorse personalizzate di Azure:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"name": "{myCustomResourceName}",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}",
"type": "Microsoft.CustomProviders/resourceProviders/myCustomResources",
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3" : "myPropertyValue3"
}
}
}
Enumerare tutte le risorse personalizzate
Richiesta in ingresso dell'API di Azure:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources?api-version=2018-09-01-preview
Authorization: Bearer eyJ0e...
Content-Type: application/json
La richiesta non verrà inoltrata all'endpoint.
Risposta del provider di risorse personalizzate di Azure:
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"value" : [
{
"name": "{myCustomResourceName}",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}",
"type": "Microsoft.CustomProviders/resourceProviders/myCustomResources",
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3" : "myPropertyValue3"
}
}
}
]
}
Passaggi successivi
- Panoramica sui provider di risorse personalizzate di Azure
- Avvio rapido: Creare un provider di risorse personalizzate e distribuire le risorse personalizzate
- Esercitazione: creare azioni e risorse personalizzate in Azure
- Procedura: aggiunta di azioni personalizzate all'API REST di Azure
- Informazioni di riferimento per il proxy di risorse personalizzate