Informations de référence sur les proxys de ressources personnalisées
Cet article passera par la configuration requise pour les points de terminaison mettant en œuvre des proxys 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 proxy
Vous pouvez créer une ressource de proxy en associant la valeur « Proxy » au paramètre routingType
.
Exemple de fournisseur de ressources personnalisées :
{
"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}"
}
Créer un point de terminaison de ressource proxy
Un point de terminaison qui implémente un point de terminaison de ressource de type « Proxy » 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
Les champs id
, name
, et type
ne sont pas obligatoires, mais sont nécessaires pour intégrer la ressource personnalisée à un écosystème Azure existant.
Exemple de ressource :
{
"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"
}
}
}
Référence de paramètre :
Propriété | Exemple | Description |
---|---|---|
name | ’{myCustomResourceName}’ | Nom de la ressource personnalisée. |
type | ’Microsoft.CustomProviders/resourceProviders/{resourceTypeName}’ | Espace de noms du type de ressource. |
id | ’/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/ providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/ myCustomResources/{myCustomResourceName}’ |
ID de la ressource. |
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/{resource-provider-name}/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 ».
Réponse du point de terminaison :
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"
}
}
}
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 :
- 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 ».
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
Cette requête est ensuite transférée au point de terminaison sous la forme suivante :
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 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 ».
Réponse du point de terminaison :
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"
}
}
}
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
Cette requête est ensuite transférée au point de terminaison sous la forme suivante :
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 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 ». - La liste des ressources doit être placée sous la propriété
value
de niveau supérieur.
Réponse du point de terminaison :
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"
}
}
}
]
}
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 caches de ressources personnalisées