Compartir a través de


Referencia de caché de recursos personalizados

En este artículo se describen los requisitos para los puntos de conexión que implementan recursos personalizados de caché. Si no está familiarizado con los proveedores de recursos personalizados de Azure, consulte la información general sobre los proveedores de recursos personalizados.

Definición de un punto de conexión de recursos de caché

Se puede crear un recurso de proxy especificando " routingType Proxy, Caché".

Proveedor de recursos personalizados de muestra

{
  "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}"
}

Creación de un punto de conexión de recursos de proxy

Un punto de conexión que implemente un punto de conexión de recurso "Proxy, caché" debe controlar la solicitud y la respuesta de la nueva API en Azure. En este caso, resourceType generará una nueva API de recursos de Azure para PUT, GETy DELETE para realizar CRUD en un único recurso, así como GET para recuperar todos los recursos existentes.

Nota:

La API de Azure generará los métodos PUTde solicitud , GETy DELETE, pero el punto de conexión de caché solo necesita controlar PUT y DELETE. Se recomienda que el punto de conexión también implemente GET.

Creación de un recurso personalizado

Solicitud entrante de la API de 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"
        }
    }
}

A continuación, esta solicitud se reenviará al punto de conexión con el formato :

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"
        }
    }
}

A continuación, la respuesta del punto de conexión se reenvía al cliente. La respuesta debe devolver:

  • Un documento de objeto JSON válido. Todas las matrices y cadenas deben anidarse en un objeto superior.
  • El Content-Type encabezado debe establecerse en "application/json; charset=utf-8".
  • El proveedor de recursos personalizado sobrescribirá los campos name, type y id de la solicitud.
  • El proveedor de recursos personalizado solo devolverá campos bajo el properties objeto para un punto de conexión de caché.

Respuesta del punto de conexión:

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

{
    "properties": {
        "myProperty1": "myPropertyValue1",
        "myProperty2": {
            "myProperty3" : "myPropertyValue3"
        }
    }
}

El proveedor de recursos personalizado generará automáticamente los campos name, id y type para el recurso personalizado.

Respuesta del proveedor de recursos personalizados de 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"
        }
    }
}

Eliminación de un recurso personalizado

Solicitud entrante de la API de 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

A continuación, esta solicitud se reenviará al punto de conexión con el formato :

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}

A continuación, la respuesta del punto de conexión se reenvía al cliente. La respuesta debe devolver:

  • Un documento de objeto JSON válido. Todas las matrices y cadenas deben anidarse en un objeto superior.
  • El Content-Type encabezado debe establecerse en "application/json; charset=utf-8".
  • El proveedor de recursos personalizados de Azure solo quitará el elemento de su caché si se devuelve una respuesta de 200 niveles. Incluso si el recurso no existe, el punto de conexión debe devolver 204.

Respuesta del punto de conexión:

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

Respuesta del proveedor de recursos personalizados de Azure:

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

Recuperación de un recurso personalizado

Solicitud entrante de la API de 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 solicitud no se reenviará al punto de conexión.

Respuesta del proveedor de recursos personalizados de 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"
        }
    }
}

Enumerar todos los recursos personalizados

Solicitud entrante de la API de 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 solicitud no se reenviará al punto de conexión.

Respuesta del proveedor de recursos personalizados de 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"
                }
            }
        }
    ]
}

Pasos siguientes