Démarrage rapide : Créer un fournisseur de ressources personnalisées Azure et déployer des ressources personnalisées

Dans ce guide de démarrage rapide, vous allez créer un fournisseur de ressources personnalisé et déployer des ressources personnalisées pour celui-ci. Pour plus d’informations sur les fournisseurs de ressources personnalisés, consultez Présentation des fournisseurs de ressources personnalisés Azure.

Prérequis

Préparez votre environnement pour l’interface Azure CLI.

Les exemples Azure CLI utilisent az rest pour les demandes REST. Pour plus d’informations, consultez az rest.

Déployer un fournisseur de ressources personnalisé

Pour configurer le fournisseur de ressources personnalisé, déployez un exemple de modèle sur votre abonnement Azure.

Le modèle déploie les ressources suivantes sur votre abonnement :

  • Une application de fonction avec les opérations pour les ressources et les actions.
  • Un compte de stockage pour stocker les utilisateurs créés via le fournisseur de ressources personnalisé.
  • Un fournisseur de ressources personnalisé qui définit les types de ressources personnalisées et les actions. Il utilise le point de terminaison de l’application de fonction pour envoyer les demandes.
  • Une ressource personnalisée provenant du fournisseur de ressources personnalisé.

Pour déployer le fournisseur de ressources personnalisé, utilisez Azure CLI, PowerShell ou le portail Azure.

Cet exemple vous invite à entrer un groupe de ressources, un emplacement et le nom de l’application de fonction du fournisseur. Les noms sont stockés dans des variables qui sont utilisées dans d’autres commandes. Les commandes az group create et az deployment group create déploient les ressources.

read -p "Enter a resource group name:" rgName &&
read -p "Enter the location (i.e. eastus):" location &&
read -p "Enter the provider's function app name:" funcName &&
templateUri="https://raw.githubusercontent.com/Azure/azure-docs-json-samples/master/custom-providers/customprovider.json" &&
az group create --name $rgName --location "$location" &&
az deployment group create --resource-group $rgName --template-uri $templateUri --parameters funcName=$funcName &&
echo "Press [ENTER] to continue ..." &&
read

Pour déployer le modèle à partir du portail Azure, sélectionnez le bouton Déployer sur Azure.

Button to deploy the Resource Manager template to Azure.

Afficher le fournisseur de ressources personnalisé et la ressource

Dans le portail, le fournisseur de ressources personnalisé est un type de ressource masqué. Pour vérifier que le fournisseur de ressources a été déployé, accédez au groupe de ressources et sélectionnez Afficher les types masqués.

Screenshot of Azure portal displaying hidden resource types and resources deployed in a resource group.

Pour voir la ressource personnalisée que vous avez déployée, utilisez l’opération GET sur votre type de ressource. Le type de ressource Microsoft.CustomProviders/resourceProviders/users indiqué dans la réponse JSON inclut la ressource créée par le modèle.

GET https://management.azure.com/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceProviders/<provider-name>/users?api-version=2018-09-01-preview
subID=$(az account show --query id --output tsv)
requestURI="https://management.azure.com/subscriptions/$subID/resourceGroups/$rgName/providers/Microsoft.CustomProviders/resourceProviders/$funcName/users?api-version=2018-09-01-preview"
az rest --method get --uri $requestURI

Vous recevez la réponse :

{
  "value": [
    {
      "id": "/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceProviders/<provider-name>/users/ana",
      "name": "ana",
      "properties": {
        "FullName": "Ana Bowman",
        "Location": "Moon",
        "provisioningState": "Succeeded"
      },
      "type": "Microsoft.CustomProviders/resourceProviders/users"
    }
  ]
}

Appeler une action

Votre fournisseur de ressources personnalisé dispose également d’une action nommée ping. Le code qui traite la demande est implémenté dans l’application de fonction. L’action ping répond par un message d’accueil.

Pour envoyer une demande ping, utilisez l’opération POST sur votre action.

POST https://management.azure.com/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceProviders/<provider-name>/ping?api-version=2018-09-01-preview
pingURI="https://management.azure.com/subscriptions/$subID/resourceGroups/$rgName/providers/Microsoft.CustomProviders/resourceProviders/$funcName/ping?api-version=2018-09-01-preview"
az rest --method post --uri $pingURI

Vous recevez la réponse :

{
  "message": "hello <function-name>.azurewebsites.net",
  "pingcontent": {
    "source": "<function-name>.azurewebsites.net"
  }
}

Utiliser PUT pour créer une ressource

Dans ce guide de démarrage rapide, le modèle a utilisé le type de ressource Microsoft.CustomProviders/resourceProviders/users pour déployer une ressource. Vous pouvez également utiliser une opération PUT pour créer une ressource. Par exemple, si une ressource n’est pas déployée avec le modèle, l’opération PUT crée une ressource.

Dans cet exemple, étant donné que le modèle a déjà déployé une ressource, l’opération PUT crée une ressource.

PUT https://management.azure.com/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceProviders/<provider-name>/users/<resource-name>?api-version=2018-09-01-preview

{"properties":{"FullName": "Test User", "Location": "Earth"}}
addURI="https://management.azure.com/subscriptions/$subID/resourceGroups/$rgName/providers/Microsoft.CustomProviders/resourceProviders/$funcName/users/testuser?api-version=2018-09-01-preview"
az rest --method put --uri $addURI --body "{'properties':{'FullName': 'Test User', 'Location': 'Earth'}}"

Vous recevez la réponse :

{
  "id": "/subscriptions/<sub-ID>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceProviders/<provider-name>/users/testuser",
  "name": "testuser",
  "properties": {
    "FullName": "Test User",
    "Location": "Earth",
    "provisioningState": "Succeeded"
  },
  "type": "Microsoft.CustomProviders/resourceProviders/users"
}

Vous pouvez réexécuter l’opération GET à partir de la section Afficher le fournisseur de ressources personnalisé et la ressource pour afficher les deux ressources qui ont été créées. Cet exemple montre la sortie de la commande Azure CLI.

{
  "value": [
    {
      "id": "/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceProviders/<provider-name>/users/ana",
      "name": "ana",
      "properties": {
        "FullName": "Ana Bowman",
        "Location": "Moon",
        "provisioningState": "Succeeded"
      },
      "type": "Microsoft.CustomProviders/resourceProviders/users"
    },
    {
      "id": "/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceProviders/<provider-name>/users/testuser",
      "name": "testuser",
      "properties": {
        "FullName": "Test User",
        "Location": "Earth",
        "provisioningState": "Succeeded"
      },
      "type": "Microsoft.CustomProviders/resourceProviders/users"
    }
  ]
}

Commandes de fournisseur de ressources personnalisé

Utilisez les commandes custom-providers pour travailler avec votre fournisseur de ressources personnalisé.

Lister les fournisseurs de ressources personnalisés

Utilisez la commande list pour afficher tous les fournisseurs de ressources personnalisés disponibles dans un abonnement. La valeur par défaut liste les fournisseurs de ressources personnalisés de l’abonnement actuel, mais vous pouvez également spécifier le paramètre --subscription. Pour lister un groupe de ressources, utilisez le paramètre --resource-group.

az custom-providers resource-provider list --subscription $subID
[
  {
    "actions": [
      {
        "endpoint": "https://<provider-name>.azurewebsites.net/api/{requestPath}",
        "name": "ping",
        "routingType": "Proxy"
      }
    ],
    "id": "/subscriptions/<sub-id>/resourceGroups/<rg-name>/providers/Microsoft.CustomProviders/resourceproviders/<provider-name>",
    "location": "eastus",
    "name": "<provider-name>",
    "provisioningState": "Succeeded",
    "resourceGroup": "<rg-name>",
    "resourceTypes": [
      {
        "endpoint": "https://<provider-name>.azurewebsites.net/api/{requestPath}",
        "name": "users",
        "routingType": "Proxy, Cache"
      }
    ],
    "tags": {},
    "type": "Microsoft.CustomProviders/resourceproviders",
    "validations": null
  }
]

Afficher les propriétés

Utilisez la commande show pour afficher les propriétés du fournisseur de ressources personnalisé. Le format de sortie ressemble à la sortie list.

az custom-providers resource-provider show --resource-group $rgName --name $funcName

Créer une nouvelle ressource

Utilisez la commande create pour créer ou mettre à jour un fournisseur de ressources personnalisé. Cet exemple met à jour actions et resourceTypes.

az custom-providers resource-provider create --resource-group $rgName --name $funcName \
--action name=ping endpoint=https://myTestSite.azurewebsites.net/api/{requestPath} routing_type=Proxy \
--resource-type name=users endpoint=https://myTestSite.azurewebsites.net/api/{requestPath} routing_type="Proxy, Cache"
"actions": [
  {
    "endpoint": "https://myTestSite.azurewebsites.net/api/{requestPath}",
    "name": "ping",
    "routingType": "Proxy"
  }
],

"resourceTypes": [
  {
    "endpoint": "https://myTestSite.azurewebsites.net/api/{requestPath}",
    "name": "users",
    "routingType": "Proxy, Cache"
  }
],

Mettre à jour les étiquettes du fournisseur

La commande update met uniquement à jour les étiquettes d’un fournisseur de ressources personnalisé. Dans le portail Azure, le service d’application du fournisseur de ressources personnalisé affiche l’étiquette.

az custom-providers resource-provider update --resource-group $rgName --name $funcName --tags new=tag
"tags": {
  "new": "tag"
},

Supprimer un fournisseur de ressources personnalisé

La commande delete vous invite à supprimer uniquement le fournisseur de ressources personnalisé. Le compte de stockage, le service d’application et le plan de service d’application ne sont pas supprimés. Une fois le fournisseur supprimé, vous êtes redirigé vers une invite de commandes.

az custom-providers resource-provider delete --resource-group $rgName --name $funcName

Nettoyer les ressources

Si vous avez terminé avec les ressources créées dans cet article, vous pouvez supprimer le groupe de ressources. Lorsque vous supprimez un groupe de ressources, toutes les ressources de ce groupe sont supprimées.

az group delete --resource-group $rgName

Étapes suivantes

Pour obtenir une présentation des fournisseurs de ressources personnalisés, consultez l’article suivant :