Créer une logique de réponse à un événement

Effectué

Quand vous créez des événements dans Azure Event Grid, vous choisissez les réponses à donner à ces événements et les actions à exécuter.

Pour votre organisation médicale, vous avez configuré une application logique afin qu’elle écoute les événements ayant trait à vos ressources Azure. Vous devez maintenant filtrer les événements et créer des actions différentes en fonction des conditions qui y sont définies.

Ici, vous allez apprendre à créer des actions et des conditions pour répondre aux événements.

Conditions

Pour que des actions s’exécutent dans votre application logique quand des événements satisfont à une condition spécifiée, vous ajoutez une instruction conditionnelle. Cette structure de contrôle compare les données de votre workflow à des valeurs ou à des champs spécifiques. Vous spécifiez ensuite différentes actions qui doivent s’exécuter si les données remplissent la condition.

L’image suivante montre un exemple de filtre qui vérifie si un nom de fichier dans un répertoire a l’extension .pdf.

Screenshot of a condition filter for a .pdf file in a folder.

Supposons, par exemple, que votre application logique soit configurée pour envoyer un e-mail quand certains champs sont trouvés dans un déclencheur Event Grid. Dans ce cas, vous créez une condition dans votre application logique qui soit capable de vérifier les données des événements et d’appeler une action de manière conditionnelle.

Actions

Les applications logiques intègrent des déclencheurs et des actions. Vous pouvez utiliser des applications logiques pour orchestrer les workflows, communiquer avec d’autres applications et services, ou encore gérer ou manipuler les données.

Voilà quelques-unes des nombreuses actions intégrées :

  • Azure Service Bus
  • SQL Server
  • Office 365 Outlook
  • Salesforce

Imaginons que vous vouliez que votre application logique envoie un e-mail en réponse à un événement. L’utilisation de l’action intégrée Office 365 Outlook serait appropriée.

Configuration JSON

La barre de commandes du concepteur Logic Apps comporte deux vues d’une application logique. Vous pouvez utiliser les deux vues pour le développement et la configuration :

  • Concepteur : interface graphique pour le mappage de tous les déclencheurs, actions et connecteurs.
  • Vue code : Format JSON de la configuration de votre application logique qui vous permet de modifier déclencheur, événement, connexion ou champ associé que vous avez mappé.

Screenshot of the choice of two views for a logic app.

Dans la barre de commandes du concepteur Logic Apps, sélectionnez Mode Code pour afficher la configuration JSON du déclencheur Event Grid que vous avez créé.

Examinez le code de configuration JSON de vos déclencheurs d’événements, et vous reconnaîtrez les paramètres et les concepts que nous avons vus jusqu’à présent. À mesure que vous vous familiarisez à JSON, vous allez être capable de modifier directement la configuration JSON.

{
    "definition": {
        "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
        "actions": {},
        "contentVersion": "1.0.0.0",
        "outputs": {},
        "parameters": {
            "$connections": {
                "defaultValue": {},
                "type": "Object"
            }
        },
        "triggers": {
            "When_a_resource_event_occurs": {
                "inputs": {
                    "body": {
                        "properties": {
                            "destination": {
                                "endpointType": "webhook",
                                "properties": {
                                    "endpointUrl": "@{listCallbackUrl()}"
                                }
                            },
                            "filter": {
                                "includedEventTypes": [
                                    "Microsoft.Resources.ResourceActionSuccess",
                                    "Microsoft.Resources.ResourceDeleteSuccess",
                                    "Microsoft.Resources.ResourceWriteSuccess"
                                ]
                            },
                            "topic": "/subscriptions/826d0748-8207-40ad-9e9c-44be4fa3f764/resourceGroups/learn-d022bcb1-0ce2-4e71-99a6-2ddd19e85389"
                        }
                    },
                    "host": {
                        "connection": {
                            "name": "@parameters('$connections')['azureeventgrid']['connectionId']"
                        }
                    },
                    "path": "/subscriptions/@{encodeURIComponent('826d0748-8207-40ad-9e9c-44be4fa3f764')}/providers/@{encodeURIComponent('Microsoft.Resources.ResourceGroups')}/resource/eventSubscriptions",
                    "queries": {
                        "x-ms-api-version": "2017-09-15-preview"
                    }
                },
                "splitOn": "@triggerBody()",
                "type": "ApiConnectionWebhook"
            }
        }
    },
    "parameters": {
        "$connections": {
            "value": {
                "azureeventgrid": {
                    "connectionId": "/subscriptions/826d0748-8207-40ad-9e9c-44be4fa3f764/resourceGroups/learn-d022bcb1-0ce2-4e71-99a6-2ddd19e85389/providers/Microsoft.Web/connections/azureeventgrid",
                    "connectionName": "azureeventgrid",
                    "id": "/subscriptions/826d0748-8207-40ad-9e9c-44be4fa3f764/providers/Microsoft.Web/locations/westus/managedApis/azureeventgrid"
                }
            }
        }
    }
}

Une extension avec laquelle vous pouvez modifier vos applications logiques dans Visual Studio Code est également disponible. Vous pouvez télécharger et installer cette extension à partir de Visual Studio Marketplace ou directement à partir de Visual Studio Code.

Screenshot of Azure Logic Apps in a list of Visual Studio Code extensions.

Utilisons le Mode Création dans le portail Azure pour configurer l’application logique afin qu’elle réponde aux déclencheurs.