Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article décrit les conditions requises pour les points de terminaison implémentant des ressources personnalisées proxy. Si vous n’êtes pas familiarisé avec les fournisseurs de ressources personnalisés Azure, consultez la vue d’ensemble des fournisseurs de ressources personnalisés.
Définir un point de terminaison de ressource proxy
Une ressource proxy peut être créée en spécifiant « Proxy » pour routingType.
Exemple de fournisseur de ressources personnalisé :
{
"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 « Proxy » doit gérer la demande et la réponse pour la nouvelle API dans Azure. Dans ce cas, le #resourceType* génère une nouvelle API de ressource Azure pour PUT, GETet DELETE exécute CRUD sur une seule ressource, ainsi que GET pour récupérer toutes les ressources existantes.
Note
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"
}
}
}
Informations de référence sur les paramètres :
| Propriété | Sample | Descriptif |
|---|---|---|
| nom | ’{myCustomResourceName}’ | Nom de la ressource personnalisée. |
| type | ’Microsoft.CustomProviders/resourceProviders/{resourceTypeName}’ | Espace de noms de 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 demande sera 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 renvoyée au client. La réponse doit retourner :
- Document d’objet JSON valide. Tous les tableaux et chaînes doivent être imbriqués sous un objet supérieur.
- L’en-tête
Content-Typedoit ê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é 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 demande sera 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 renvoyée au client. La réponse doit fournir :
- Document d’objet JSON valide. Tous les tableaux et chaînes doivent être imbriqués sous un objet supérieur.
- L’en-tête
Content-Typedoit ê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é 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 demande sera 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 renvoyé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 supérieur.
- L’en-tête
Content-Typedoit ê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é 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 demande sera 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 renvoyée au client. La réponse doit retourner :
- Document d’objet JSON valide. Tous les tableaux et chaînes doivent être imbriqués sous un objet supérieur.
- L’en-tête
Content-Typedoit être défini sur « application/json ; charset=utf-8". - La liste des ressources doit être placée sous la propriété de niveau
valuesupé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é 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és Azure
- Démarrage rapide : Créer un fournisseur de ressources personnalisé Azure et déployer des ressources personnalisées
- Tutoriel : Créer des actions et des ressources personnalisées dans Azure
- Guide pratique pour ajouter des actions personnalisées à l’API REST Azure
- Référence : Informations de référence sur le cache de ressources personnalisées