Informazioni di riferimento per il proxy di risorse personalizzate
Questo articolo illustra i requisiti per gli endpoint che implementano risorse personalizzate proxy. 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 proxy
È possibile creare una risorsa proxy specificando routingType
in "Proxy".
Esempio di provider di risorse personalizzate:
{
"properties": {
"resourceTypes": [
{
"name": "myCustomResources",
"routingType": "Proxy",
"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" 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
I campi id
, name
e type
non sono necessari, ma sono necessari per integrare la risorsa personalizzata con un ecosistema di Azure esistente.
Risorsa di esempio:
{
"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"
}
}
}
Riferimento ai parametri:
Proprietà | Esempio | Descrizione |
---|---|---|
name | '{myCustomResourceName}' | Il nome della risorsa personalizzata. |
type | 'Microsoft.CustomProviders/resourceProviders/{resourceTypeName}' | Lo spazio dei nomi del tipo di risorsa. |
id | '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/ providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/ myCustomResources/{myCustomResourceName}' |
L'ID della risorsa. |
Creare una risorsa personalizzata
Richiesta in ingresso dell'API di Azure:
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resource-provider-name}/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".
Risposta dell'endpoint:
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"
}
}
}
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:
- 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".
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
Questa richiesta verrà quindi inoltrata all'endpoint nel modulo:
GET 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".
Risposta dell'endpoint:
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"
}
}
}
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
Questa richiesta verrà quindi inoltrata all'endpoint nel modulo:
GET 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
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". - L'elenco delle risorse deve essere inserito nella proprietà di primo livello
value
.
Risposta dell'endpoint:
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"
}
}
}
]
}
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 la cache di risorse personalizzate