Informations de référence sur les caches de ressources personnalisées
Cet article passera par la configuration requise pour les points de terminaison mettant en œuvre des caches de ressources personnalisées. Pour plus d’informations sur les fournisseurs de ressources personnalisées Azure, consultez la présentation des fournisseurs de ressources personnalisées.
Définir un point de terminaison de ressource de cache
Vous pouvez créer une ressource de proxy en associant la valeur « Proxy, Cache » au paramètre routingType
.
Exemple de fournisseur de ressources personnalisées :
{
"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}"
}
Créer un point de terminaison de ressource proxy
Un point de terminaison qui implémente un point de terminaison de type « Proxy, Cache » doit gérer la requête et la réponse de la nouvelle API dans Azure. Dans ce cas, le paramètre resourceType génère une nouvelle API de ressource Azure pour PUT
, GET
et DELETE
afin d’exécuter CRUD sur une ressource unique, ainsi que GET
pour récupérer toutes les ressources existantes.
Remarque
L’API Azure génère les méthodes de requête PUT
, GET
, et DELETE
, mais le point de terminaison du cache doit uniquement gérer PUT
et DELETE
.
Nous recommandons que le point de terminaison implémente également GET
.
Créer une ressource personnalisée
Requête entrante de l’API 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"
}
}
}
Cette requête est ensuite transférée au point de terminaison sous la forme suivante :
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 réponse du point de terminaison est ensuite retransférée au client. La réponse doit renvoyer :
- Un document d’objet JSON valide. Tous les tableaux et chaînes doivent être imbriqués sous un objet de niveau supérieur.
- L’en-tête
Content-Type
doit être défini sur « application/json; charset=utf-8 ». - Le fournisseur de ressources personnalisées remplace les champs
name
,type
, etid
pour la requête. - Le fournisseur de ressources personnalisées renvoie uniquement les champs figurant sous l’objet
properties
pour un point de terminaison du cache.
Réponse du point de terminaison :
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
{
"properties": {
"myProperty1": "myPropertyValue1",
"myProperty2": {
"myProperty3" : "myPropertyValue3"
}
}
}
Les champs name
, id
, et type
sont automatiquement générés par le fournisseur de ressources personnalisées pour la ressource personnalisée.
Réponse du fournisseur de ressources personnalisées 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"
}
}
}
Supprimer une ressource personnalisée
Requête entrante de l’API 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
Cette requête est ensuite transférée au point de terminaison sous la forme suivante :
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 réponse du point de terminaison est ensuite retransférée au client. La réponse doit renvoyer :
- Un document d’objet JSON valide. Tous les tableaux et chaînes doivent être imbriqués sous un objet de niveau supérieur.
- L’en-tête
Content-Type
doit être défini sur « application/json; charset=utf-8 ». - Le fournisseur de ressources personnalisées Azure supprime uniquement l’élément de son cache si une réponse de niveau 200 est renvoyée. Même si la ressource n’existe pas, le point de terminaison doit renvoyer la valeur 204.
Réponse du point de terminaison :
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Réponse du fournisseur de ressources personnalisées Azure :
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Récupérer une ressource personnalisée
Requête entrante de l’API 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 requête ne sera pas transmise au point de terminaison.
Réponse du fournisseur de ressources personnalisées 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"
}
}
}
Énumérer toutes les ressources personnalisées
Requête entrante de l’API 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 requête ne sera pas transmise au point de terminaison.
Réponse du fournisseur de ressources personnalisées 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"
}
}
}
]
}
Étapes suivantes
- Vue d’ensemble des fournisseurs de ressources personnalisées Azure
- Démarrage rapide : Créer un fournisseur de ressources personnalisées Azure et déployer des ressources personnalisées
- Tutoriel : Créer des actions et des ressources personnalisées dans Azure
- Guide pratique pour Ajout d’actions personnalisées à l’API REST Azure
- Reference : Informations de référence sur les proxys de ressources personnalisées