Agence web » Actualités du digital » Comment utiliser les fonctions Azure sans serveur

Comment utiliser les fonctions Azure sans serveur

Ces dernières années, le sans serveur est devenu l'une des technologies dont on parle le plus. Bien qu'elles ne soient pas vraiment sans serveur, les options sans serveur évitent la gestion de l'utilisateur vers un service géré et hébergé.

L'une des capacités les plus intéressantes est celle d'écrire du code pour ensuite s'exécuter sur des instances sans serveur. Azure Functions propose plusieurs environnements d'exécution, langues et même la prise en charge des conteneurs Docker. Vous choisissez simplement la langue dans laquelle vous souhaitez écrire, déployez le code et consommez les résultats.

Approvisionnement de l'application Azure Function

Tout d'abord, accédez à «Function App» dans le portail Azure. Une fois là-bas, cliquez sur le bouton «Créer une application de fonction».

Saisissez les valeurs les plus adaptées à votre environnement et à vos besoins. Dans cet exemple, nous allons utiliser le runtime PowerShell Core 7.0.

  • Nom de l'application de fonction: lc-test-function
  • Publier: Code
  • Pile d'exécution: PowerShell Core
  • Version: 7,0
  • Région: Est des États-Unis

Dans l'onglet Hébergement, nous allons créer un nouveau compte de stockage pour contenir les données de sortie de la fonction. Comme il s'agit de PowerShell, le runtime prend uniquement en charge Windows, bien que PowerShell 7 soit multiplateforme. Enfin, nous utilisons le plan de consommation pour cette fonction Azure.

Pour Monitoring, nous allons créer une nouvelle configuration Application Insights et activer l'option Monitoring.

Nous allons ignorer le balisage dans cet article et passer à Réviser et créer. Une fois ici, vérifiez que tout semble exact, puis cliquez sur "Créer".

Créer un code de fonction Azure

Pour cet article, nous allons montrer comment cela fonctionne avec une fonction de déclenchement HTTP. Accédez à votre fonction d'application et cliquez sur le volet «Fonctions». Une fois là-bas, cliquez sur «Ajouter» et choisissez le modèle de déclencheur HTTP.

Nous allons nous en tenir aux valeurs par défaut pour le nom de la fonction et le niveau d'autorisation. Les différents niveaux d'autorisation correspondent aux éléments suivants:

  • Fonction: Utilise une touche de fonction spécifique
  • Administrateur: Utilise la clé principale pour l'environnement
  • Anonyme: Ne nécessite aucune autorisation, limite les capacités

Modification du code de fonction

Cliquez sur la fonction nouvellement créée HttpTrigger1, et cliquez sur la section «Code + Test». Vous trouverez ici un éditeur de code en ligne qui vous permettra de tester et d'exécuter votre code de fonction. Les valeurs ci-dessous sont les configurations par défaut.

Alors, que pouvez-vous faire avec les applications de fonction? Il existe de nombreuses utilisations, et pour illustrer l'une d'entre elles, nous allons transmettre un ID d'emplacement spécifique à partir d'un appel PowerShell, qui à son tour appellera la fonction Azure pour s'exécuter sur une API REST pour obtenir des données météorologiques. Les modifications que nous apportons à la configuration par défaut sont:

  • Modifier $name à $location
  • Créé un Invoke-RestMethod appel à l'API metaweather.com
  • Mettre en forme les résultats à envoyer sous forme de chaîne dans le corps
using namespace System.Net

# Input bindings are passed in via param block.
param($Request, $TriggerMetadata)

# Write to the Azure Functions log stream.
Write-Host "PowerShell HTTP trigger function processed a request."

# Interact with query parameters or the body of the request.
$location = $Request.Query.Location
if (-not $location ) {
    $location = $Request.Body.Location
}

$body = "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response."

if ($location ) {
	$Params = @{
		"URI"    = ""
		"Method" = 'GET'
	}
	
	$Result = Invoke-RestMethod @Params
	$Body   = $Result.consolidated_weather | Select-Object applicable_date, weather_state_name, the_temp, humidity
}

# Associate values to output bindings by calling 'Push-OutputBinding'.
Push-OutputBinding -Name Response -Value ((HttpResponseContext)@{
    StatusCode = (HttpStatusCode)::OK
    Body = ($Body | Out-String)
})

Cliquez sur «Enregistrer» pour effectuer les modifications. Nous allons tester / exécuter ce code pour vérifier qu'il fonctionne comme prévu. Une fois que vous avez cliqué sur «Test / Exécuter», une fenêtre nous sera présentée qui nous permet de modifier l'entrée pour qu'elle corresponde à ce que le code attend.

{
  "location": "2379574"
}

Après avoir exécuté le code, vous pouvez voir la sortie correcte dans l'onglet Sortie sous le contenu de la réponse HTTP.

Déclenchement de la fonction via PowerShell externe

Tout d'abord, cliquez sur le bouton URL «Obtenir la fonction», qui vous présentera une URL que vous pouvez utiliser pour appeler l'application Fonction.

Dans une session PowerShell, utilisez le Invoke-RestMethod pour appeler le déclencheur HTTP et passer le location variable que le script attend. Comme vous pouvez le voir dans la sortie, les données météorologiques sont renvoyées comme prévu.

$Params = @{
	"URI"         = ''
  "Method"      = 'POST'
  "ContentType" = 'application/json'
  "Body"        = (@{
    "location" = "2379574"
  } | ConvertTo-JSON)
}

Invoke-RestMethod @Params=

Conclusion

Azure Functions est un outil puissant pour créer des fonctions sans serveur dans plusieurs langues. En libérant un développeur pour ne pas avoir à se concentrer sur l'environnement et toutes les dépendances, il peut rapidement itérer sur le code et la conception pour créer des fonctionnalités uniques!

★★★★★