Fermer

juillet 3, 2018

Une introduction aux fonctions Azure


L'informatique sans serveur est tout le battage médiatique de nos jours – heureux que vous et moi ayons commencé à parler sans serveur pendant une conférence de développeurs ! Nous avons parlé de différents types de cloud computing, de ce qu'est exactement serverless et de certains scénarios pour lesquels vous pourriez l'utiliser. Nous avons pris une pause pour le service de boissons, mais maintenant, avec nos cafés en main, nous pouvons reprendre la conversation. Cette fois-ci, je veux me plonger dans les détails et parler de l'offre de cloud computing sans serveur de Microsoft, Azure Functions .

Puisque nous naviguons à 35 000 pieds, permettez-moi d'abord de ce que sont exactement les fonctions Azure, et ce qu'elles peuvent faire pour vous. Ensuite, nous allons créer rapidement une fonction Azure pour la voir en action. Oui, c'est vrai, nous serons en mesure de construire, tester et exécuter une fonction Azure sur un terrible avion Wi-Fi.

Quelles sont les fonctions Azure?

 Fonctions Azure

Microsoft Azure Functions est une architecture moderne sans serveur, offrant un cloud computing piloté par les événements et facile à utiliser pour les développeurs. Il fournit un moyen d'exécuter de petits morceaux de code ou de fonctions dans le nuage sans que les développeurs aient à se soucier de l'infrastructure ou de la plate-forme sur laquelle la fonction s'exécute.

Cela signifie que nous ne sommes concernés que par la logique. Et nous pouvons écrire cette logique dans notre choix de langues : JavaScript, C #, F # ou Java. Nous sommes également capables d'ajouter des dépendances / paquets de npm ou de NuGet à Azure Functions – de cette façon, nous n'avons pas à réinventer la roue et pouvons utiliser des bibliothèques bien testées.

Et bien sûr, je suis obligé de mentionner le modèle de tarification d'Azure Functions – vous ne payez que pour ce que vous utilisez. Azure Functions étant une offre sans serveur, vous n'êtes facturé que lorsque votre fonction est en cours d'exécution, et non lorsqu'elle reste inactive en attendant que quelque chose se produise. Cela signifie qu'il ne sera plus nécessaire d'héberger des machines virtuelles ou d'exécuter des applications dans le cloud: Azure calculera autant ou aussi peu d'infrastructure que nécessaire pour exécuter votre fonction à la demande. Vous ne payez littéralement que le temps de calcul pour exécuter votre fonction dans le nuage – les économies de coûts peuvent être substantielles.

Voyons maintenant comment une fonction Azure est appelée

Triggers and Bindings

Une fonction Azure est un morceau de code autonome qui attend d'être exécuté. Qu'est-ce qui commence cette exécution? Quelque chose appelé déclencheur . Un déclencheur écoute simplement les services externes pour que certains événements se produisent, puis déclenche les fonctions connectées en réponse. Les fonctions Azure peuvent être démarrées par de nombreux déclencheurs, comme une requête HTTP, un BLOB inséré dans un conteneur ou un minuteur étant expiré

Cependant, les fonctions Azure peuvent également être liées à des services externes. Ces liaisons sont effectivement des paramètres d'entrée et des valeurs de retour de votre fonction. Un exemple de paramètre d'entrée peut être un enregistrement spécifique dans une base de données Azure Cosmos DB. Une liaison de sortie peut être un message Azure Storage Queue. Les fonctions Azure prennent même en charge les liaisons tierces: votre fonction peut demander à Twilio d'envoyer un SMS! Après avoir configuré Twilio, tout ce que vous devez faire est de renvoyer le type d'objet approprié à partir de votre fonction.

Voici le kicker: le runtime Fonction gère la connexion à la liaison pour vous. Cela signifie que vous n'avez pas à vous inquiéter de la disposition des objets auxquels la fonction est liée. Vous définissez des paramètres de configuration uniques, puis vous placez des attributs sur les paramètres (comme vous le verrez ci-dessous), et le runtime des fonctions s'occupe du reste!

Assez parlé! Sortons l'ordinateur portable et codons une fonction simple, devrons-nous?

Construisons une fonction Azure!

Ne vous inquiétez pas d'avoir un abonnement Azure ou même d'être connecté à Internet, nous pouvons développer et déboguer Azure Functions localement en utilisant Visual Studio ou Visual Studio Code! Vous voyez, je vous ai dit que nous n'avions pas besoin de nous inquiéter du Wi-Fi sur ce vol!

Pour cet exemple, je vais utiliser Visual Studio Code pour créer une fonction qui répond à un HTTP trigger puis écrit un message dans une file d'attente de stockage Azure .

 Exemple de flux de fonction

L'appel HTTP entrant est le ] trigger et la file d'attente de messages dans laquelle la fonction écrit est une liaison de sortie . Allons-y!

Vous avez besoin de quelques outils téléchargés et installés pour commencer. Tout d'abord, vous devrez installer les Azure Function Core Tools qui est une version locale du runtime Azure Functions. Ensuite, vous aurez besoin de Visual Studio Code avec l'extension Azure Functions pour faire le développement. Enfin, vous aurez besoin de l'émulateur de stockage Azure Storage également installé – cela nous permettra d'écrire dans une file d'attente de messages localement.

Maintenant, avec tous les outils à l'écart, écrivons une fonction

Tout d'abord, lancez Visual Studio Code. Ensuite, à partir de la palette de commandes, tapez: Fonctions Azure: Créer un nouveau projet

 Boîte de dialogue Nouveau projet de fonction

Puis suivez les étapes pour créer le répertoire projet dans et quelle langue vous voulez utiliser.

 Choisissez une langue

Une fois l'installation des modèles terminée, vous pouvez recevoir une invite pour télécharger des composants supplémentaires: il s'agit de packages NuGet. Allez-y et faites-le.

Maintenant, nous avons un projet Function, mais pas de fonctions! Réglons ça. Dans la palette de commandes, tapez à nouveau: Fonctions Azure: Créer une fonction

Il vous invite alors à sélectionner le dossier dans lequel se trouve votre application Function, puis à sélectionner un modèle.

 Créer une nouvelle fonction

Choisissez le [HTTP][1945Trugger et nommez-le PostToAQueue . Après lui avoir donné un espace de nom, il demande un niveau d'autorisation Anonymous .

Maintenant nous avons une fonction! Allons de l'avant et appuyons sur F5 et voyons le lancer!

Après le démarrage, le logo Azure Functions apparaîtra dans la fenêtre du terminal, puis l'adresse URL de la fonction.

 Logo Azure Functions du terminal en cours d'exécution

 Azure Function debug URL

Dans un navigateur Web, nous allons taper: http: // localhost: 7071 / api / PostToAQueue? name = Matt et la fonction répondra. Vous pouvez même définir des points d'arrêt dans Visual Studio Code et faire défiler le code!

Écriture dans une file d'attente

Ensuite, nous obtiendrons cette fonction de déclenchement HTTP à écrire dans une file d'attente Azure Storage locale

vouloir faire est de définir un paramètre de configuration pour indiquer à la fonction Runtime où trouver le stockage. Ouvrez local.settings.json et définissez "AzureWebJobsStorage" sur "UseDevelopmentStorage = true" . Le fichier complet ressemblera à:

 {
  "IsEncrypted": faux,
  "Valeurs": {
    "AzureWebJobsStorage": "UseDevelopmentStorage = true",
    "AzureWebJobsDashboard": ""
  }
} 

Puis créez une nouvelle classe dans votre projet. Cette classe ne contiendra que des propriétés. Appelez-le comme vous voulez et ajoutez toutes les propriétés que vous voulez. J'ai appelé le mien TheMessage et ajouté un Id et Name propriétés à celui-ci.

Enfin, changez votre PostToAQueue Fonction, donc ressemble à ce qui suit:

[StorageAccount("AzureWebJobsStorage")]
 public static class PostToAQueue
{
  [FunctionName("PostToAQueue")]
  [return: Queue("demo-queue")]
   public static TheMessage Run ([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req, journal TraceWriter)
  {
    nom de chaîne = req.Query ["name"];

    var msg = new LeMessage {Id = Guid.NewGuid (), Nom = nom};

    return msg;
  }
} 

Notez l'ajout de l'attribut de classe StorageAccount . Cela indique à la fonction d'utiliser la connexion de stockage que nous avons spécifiée auparavant. Ensuite, il y a un autre attribut au niveau de la fonction: [return: Queue("demo-queue")]. Cela spécifie quelle file d'attente utiliser dans ce compte de stockage.

Enfin, nous avons changé le type de retour en TheMessage (et il pourrait s'agir de n'importe quelle classe ici).

Puis, en retournant le fonction, cette classe est écrite dans la file d'attente. Et c'est tout. Nous n'avons pas besoin de manipuler quelque chose de spécifique au compte de stockage ou à la file d'attente: l'exécution Azure Functions s'occupe de tout cela pour nous!

Avant de l'exécuter à nouveau, démarrez l'émulateur Microsoft Storage (trouvez-le via le menu Démarrer de Windows). Puis appuyez sur F5 et lancez le même HTTP GET que précédemment.

Si vous avez installé Azure Storage Explorer, vous pouvez parcourir votre file d'attente locale et y voir le nouveau message!

 Affichage du nouveau message dans la file d'attente

Résumé

Nous avons rapidement analysé l'offre sans serveur de Microsoft, Azure Functions . C'est une offre FaaS complète qui vous permet d'écrire des fonctions dans la langue de votre choix, y compris la réutilisation de paquets tels que ceux de NuGet ou de npm!

Un point fort des fonctions Azure est la façon dont elles sont déclenchées et liées. . Les déclencheurs définissent le démarrage d'une fonction et les liaisons s'apparentent à des paramètres d'entrée et de sortie qui correspondent à des services externes. La meilleure partie est que l'exécution Azure Function prend soin de maintenir la connexion aux services externes de sorte que vous n'avez pas à vous inquiéter de la création ou de l'élimination des connexions vous-même. Nous avons ensuite écrit une fonction rapide qui est déclenchée par une requête HTTP, puis écrit un paramètre de chaîne de requête à partir de cette requête dans une file Azure Storage locale

Le vol est sur le point d'atterrir maintenant. Je vais vous montrer une fonction Azure entièrement fonctionnelle qui utilise deux reliures différentes pour faire des choses incroyables. En bas des nuages ​​réels, mais en route vers les nuages ​​avec notre code!


Les commentaires sont désactivés en mode prévisualisation.
[ad_2]
Source link