Informazioni di riferimento per la cache di risorse personalizzate
Questo articolo illustra i requisiti per gli endpoint che implementano le risorse personalizzate della cache. Se non si ha familiarità con provider di risorse personalizzate di Azure, vedere la panoramica sui provider di risorse personalizzati.
Definire un endpoint della risorsa cache
Una risorsa proxy può essere creata specificando la routingType
proprietà "Proxy, Cache".
Provider di risorse personalizzato di esempio:
{
"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 risorsa di Azure per PUT
, GET
e per eseguire CRUD in una singola risorsa, DELETE
nonché GET
per recuperare tutte le risorse esistenti.
Nota
L'API di Azure genererà i metodi PUT
di richiesta , GET
e , DELETE
ma l'endpoint della cache deve PUT
gestire e DELETE
.
È consigliabile implementare GET
anche l'endpoint .
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 dall'endpoint viene quindi inoltrata al cliente. La risposta deve restituire:
- 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 personalizzato sovrascriverà i
name
campi ,type
eid
per la richiesta. - Il provider di risorse personalizzato 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 name
campi , id
e type
verranno generati automaticamente per la risorsa personalizzata dal provider di risorse personalizzato.
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 dall'endpoint viene quindi inoltrata al cliente. La risposta deve restituire:
- 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 personalizzato 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 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 personalizzati di Azure
- Avvio rapido: Creare provider di risorse personalizzate di Azure e distribuire risorse personalizzate
- Esercitazione: Creare azioni e risorse personalizzate in Azure
- Procedura: Aggiunta di azioni personalizzate all'API REST di Azure
- Riferimento: Informazioni di riferimento sul proxy di risorse personalizzate