Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se describen los requisitos para los puntos de conexión que implementan recursos personalizados de proxy. 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 proxy
Se puede crear un recurso de proxy especificando el campo routingType a "Proxy".
Proveedor de recursos personalizado de ejemplo:
{
"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}"
}
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" 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:
Los idcampos , namey type no son necesarios, pero son necesarios para integrar el recurso personalizado con un ecosistema de Azure existente.
Recurso de ejemplo:
{
"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"
}
}
}
Referencia de parámetros:
| Propiedad | Ejemplo | Description |
|---|---|---|
| nombre | "{myCustomResourceName}" | Nombre del recurso personalizado. |
| type | 'Microsoft.CustomProviders/resourceProviders/{resourceTypeName}' | Espacio de nombres de tipo de recurso. |
| id | "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/ providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/ myCustomResources/{myCustomResourceName}' |
El identificador del recurso. |
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/{resource-provider-name}/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 debería retornar:
- Un documento de objeto JSON válido. Todas las matrices y cadenas deben anidarse en un objeto superior.
- El
Content-Typeencabezado debe establecerse en "application/json; charset=utf-8".
Respuesta del punto de conexión:
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"
}
}
}
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:
- Documento de objeto JSON válido. Todas las matrices y cadenas deben anidarse en un objeto superior.
- El
Content-Typeencabezado debe establecerse en "application/json; charset=utf-8".
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
A continuación, esta solicitud se reenviará al punto de conexión con el formato :
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}
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-Typeencabezado debe establecerse en "application/json; charset=utf-8".
Respuesta del punto de conexión:
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"
}
}
}
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
A continuación, esta solicitud se reenviará al punto de conexión con el formato :
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
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-Typeencabezado debe establecerse en "application/json; charset=utf-8". - La lista de recursos se debe colocar bajo la propiedad
valuede nivel superior.
Respuesta del punto de conexión:
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"
}
}
}
]
}
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
- Información general sobre los proveedores de recursos personalizados de Azure
- Inicio rápido: Creación de un proveedor de recursos e implementación de recursos personalizados de Azure
- Tutorial: Creación de acciones y recursos personalizados en Azure
- Adición de acciones personalizadas a la API REST de Azure
- Referencia: Referencia de caché de recursos personalizados