Créer et utiliser un fournisseur de ressources personnalisé

Un fournisseur de ressources personnalisées implique qu’un contrat soit passé entre Azure et un point de terminaison. Les fournisseurs de ressources personnalisés vous permettent de modifier des workflows dans Azure. Ce tutoriel montre comment créer un fournisseur de ressources personnalisé. Si vous ne savez pas encore ce qu’est un fournisseur de ressources personnalisé Azure, consultez la présentation des fournisseurs de ressources personnalisés Azure.

Créer un fournisseur de ressources personnalisé

Notes

Ce tutoriel n’explique pas comment créer un point de terminaison. Si vous ne disposez pas d’un point de terminaison RESTful, suivez le tutoriel sur la création de points de terminaison RESTful, qui constitue la base du tutoriel actuel.

Lorsque vous avez créé un point de terminaison, vous pouvez créer un fournisseur de ressources personnalisé afin de générer un contrat entre le fournisseur et le point de terminaison. Un fournisseur de ressources personnalisé vous permet de spécifier une liste de définitions de point de terminaison :

{
  "name": "myEndpointDefinition",
  "routingType": "Proxy",
  "endpoint": "https://<yourapp>.azurewebsites.net/api/<funcname>?code=<functionkey>"
}
Propriété Obligatoire Description
name Oui Nom de la définition de point de terminaison. Azure expose ce nom via son API sous /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders
/resourceProviders/{resourceProviderName}/{endpointDefinitionName}
routingType Non Type de contrat du point de terminaison. Si aucune valeur n’est spécifiée, la valeur par défaut est « proxy ».
endpoint Oui Point de terminaison vers lequel router les requêtes. Ce point de terminaison gère la réponse, ainsi que tous les effets secondaires de la requête.

La valeur de endpoint est l’URL du déclencheur de l’application de fonction Azure. Les espaces réservés <yourapp>, <funcname> et <functionkey> doivent être remplacés par les valeurs de l’application de fonction que vous avez créée.

Définir des actions et des ressources personnalisées

Dans le fournisseur de ressources personnalisé, une liste de définitions de points de terminaison modélisée se trouve sous les propriétés actions et resourceTypes. La propriété actions est mappée aux actions personnalisées qui sont exposées par le fournisseur de ressources personnalisé, et la propriété resourceTypes correspond aux ressources personnalisées. Dans ce tutoriel, le fournisseur de ressources personnalisé comprend une propriété actions nommée myCustomAction, et une propriété resourceTypes nommée myCustomResources.

{
  "properties": {
    "actions": [
      {
        "name": "myCustomAction",
        "routingType": "Proxy",
        "endpoint": "https://<yourapp>.azurewebsites.net/api/<funcname>?code=<functionkey>"
      }
    ],
    "resourceTypes": [
      {
        "name": "myCustomResources",
        "routingType": "Proxy",
        "endpoint": "https://<yourapp>.azurewebsites.net/api/<funcname>?code=<functionkey>"
      }
    ]
  },
  "location": "eastus"
}

Déployer le fournisseur de ressources personnalisé

Notes

Vous devez remplacer les valeurs endpoint par l’URL de déclencheur de l’application de fonction créée précédemment dans ce tutoriel.

Vous pouvez déployer le fournisseur de ressources personnalisé ci-dessus à l’aide d’un modèle Azure Resource Manager :

{
    "$schema": "http://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [
        {
            "type": "Microsoft.CustomProviders/resourceProviders",
            "name": "myCustomProvider",
            "apiVersion": "2018-09-01-preview",
            "location": "eastus",
            "properties": {
                "actions": [
                    {
                        "name": "myCustomAction",
                        "routingType": "Proxy",
                        "endpoint": "https://<yourapp>.azurewebsites.net/api/<funcname>?code=<functionkey>"
                    }
                ],
                "resourceTypes": [
                    {
                        "name": "myCustomResources",
                        "routingType": "Proxy",
                        "endpoint": "https://<yourapp>.azurewebsites.net/api/<funcname>?code=<functionkey>"
                    }
                ]
            }
        }
    ]
}

Utiliser des actions et des ressources personnalisées

Après avoir créé un fournisseur de ressources personnalisé, vous pouvez utiliser les nouvelles API Azure. Les sections suivantes expliquent comment appeler et utiliser un fournisseur de ressources personnalisé.

Actions personnalisées

Azure CLI

Notes

Vous devez remplacer les espaces réservés {subscriptionId} et {resourceGroupName} par l’abonnement et le groupe de ressources dans lesquels vous avez déployé le fournisseur de ressources personnalisé.

az resource invoke-action --action myCustomAction \
                          --ids /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/myCustomProvider \
                          --request-body
                            '{
                                "hello": "world"
                            }'
Paramètre Obligatoire Description
action Oui Nom de l’action définie dans le fournisseur de ressources personnalisé.
ids Oui ID de ressource du fournisseur de ressources personnalisé.
request-body Non Corps de la requête qui sera envoyé au point de terminaison.

Ressources personnalisées

Notes

Vous devez remplacer les espaces réservés {subscriptionId} et {resourceGroupName} par l’abonnement et le groupe de ressources dans lesquels vous avez déployé le fournisseur de ressources personnalisé.

Créer une ressource personnalisée

az resource create --is-full-object \
                   --id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/myCustomProvider/myCustomResources/myTestResourceName1 \
                   --properties
                    '{
                        "location": "eastus",
                        "properties": {
                            "hello" : "world"
                        }
                    }'
Paramètre Obligatoire Description
is-full-object Oui Indique si l’objet properties inclut d’autres options telles que l’emplacement, les étiquettes, une référence SKU ou un plan.
id Oui ID de ressource de la ressource personnalisée. Cet ID est une extension de l’ID de ressource du fournisseur de ressources personnalisé.
properties Oui Corps de la requête qui sera envoyé au point de terminaison.

Supprimer une ressource personnalisée

az resource delete --id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/myCustomProvider/myCustomResources/myTestResourceName1
Paramètre Obligatoire Description
id Oui ID de ressource de la ressource personnalisée. Cet ID est une extension de l’ID de ressource du fournisseur de ressources personnalisé.

Récupérer une ressource personnalisée

az resource show --id /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/myCustomProvider/myCustomResources/myTestResourceName1
Paramètre Obligatoire Description
id Oui ID de ressource de la ressource personnalisée. Cet ID est une extension de l’ID de ressource du fournisseur de ressources personnalisé.

Notes

Une fois que vous en avez terminé avec le déploiement et l’utilisation du fournisseur de ressources personnalisé, pensez à nettoyer les ressources créées, y compris l’application de fonction Azure.

Étapes suivantes

Dans cet article, vous avez découvert les fournisseurs de ressources personnalisés. Pour plus d'informations, consultez les pages suivantes :