Exercice - Publier une fonction sur Azure en utilisant Core Tools

Effectué

Dans cet exercice, vous créez une application de fonction dans Azure et publier notre projet.

Créer une application de fonction

Important

Les procédures dans cette unité dépendent du travail effectué dans l’unité 3. Le bac à sable de ce module doit être actif. Le bac à sable (sandbox) vous offre un accès temporaire et gratuit à Azure et à Azure CLI.

Azure Cloud Shell doit déjà être connecté à votre compte et configuré. Si le bac à sable n’est pas actif, vous avez perdu l’accès, les ressources et la sortie nécessaires. Revenez en arrière et effectuez l’unité 3.

Avant de pouvoir publier votre code dans une application de fonction en utilisant Core Tools, vous devez créer l’application dans Azure à l’aide d’Azure CLI de Cloud Shell.

Pour créer une application de fonction dans Azure, exécutez les commandes suivantes dans Azure Cloud Shell.

RESOURCEGROUP="<rgn>[sandbox resource group]</rgn>"
STORAGEACCT=learnstorage$(openssl rand -hex 5)
FUNCTIONAPP=learnfunctions$(openssl rand -hex 5)

az storage account create \
  --resource-group "$RESOURCEGROUP" \
  --name "$STORAGEACCT" \
  --kind StorageV2 \
  --location centralus

az functionapp create \
  --resource-group "$RESOURCEGROUP" \
  --name "$FUNCTIONAPP" \
  --storage-account "$STORAGEACCT" \
  --runtime node \
  --consumption-plan-location centralus \
  --functions-version 4

Voici ce que font ces commandes :

  • Les trois premières lignes du haut créent des variables de shell avec des valeurs que nous utilisons à plusieurs reprises dans les commandes suivantes.

    • Pour le groupe de ressources, spécifiez le groupe créé pour vous par le bac à sable. Cette valeur devrait déjà être correcte en fonction de votre bac à sable actuel.
    • Les noms du compte de stockage et de l’application de fonction incluent $(openssl rand -hex 5), ce qui génère une chaîne aléatoire de 5 caractères qui permet de garantir que les noms respectent l’obligation d’être uniques au niveau global, ainsi qu’à d’autres exigences en matière de dénomination des services.
  • az storage account create crée un compte de stockage Azure que l’application de fonction utilise. Un compte de stockage est une ressource Azure distincte qui doit être créée avant de pouvoir créer l’application de fonction.

  • az functionapp create crée l’application de fonction. Votre nouvelle application utilise le runtime node (JavaScript), qui exécute serverless dans un plan d’hébergement Consommation.

Remarque

La commande az functionapp create tente également de créer automatiquement une instance Application Insights pour surveiller les exécutions dans votre application de fonction. Comme les ressources Application Insights basées sur l'espace de travail ne peuvent actuellement pas être hébergées dans le bac à sable, vos fonctions fonctionnent mais les journaux d'exécution ne sont pas envoyés à Application Insights.

Publier sur Azure

Maintenant que vous avez créé votre application de fonction dans Azure, vous pouvez y publier le projet avec Core Tools.

Pour ce faire, exécutez les commandes suivantes dans Cloud Shell. Exécutez d’abord cd pour vérifier que vous êtes toujours dans le dossier du projet de fonctions avant de publier.

cd ~/loan-wizard
func azure functionapp publish "$FUNCTIONAPP" --force

Remarque

Si cette commande retourne une erreur indiquant que votre application est introuvable, attendez deux minutes et réessayez. La découverte par Core Tools de nouvelles applications de fonction nécessite quelques secondes.

Vous pouvez aussi ajouter --force à la commande pour mettre à jour l’incompatibilité de version de l’application de fonction.

Contrairement à l’exercice précédent, où vous avez hébergé temporairement votre fonction localement à partir de Core Tools, votre fonction est maintenant en ligne sur le web. Elle reste disponible dans le monde entier jusqu’à l’expiration du bac à sable de ce tutoriel. Étant donné que le point de terminaison HTTP a été défini avec un niveau d’autorisation anonymous, il est accessible par toute personne sur le web.

Exécuter la fonction

Votre fonction est maintenant publiée sur Azure et peut être appelée de n’importe où. Comme il s’agit d’une fonction déclenchée par HTTP qui répond à des demandes GET, nous pouvons l’exécuter à partir de n’importe quel navigateur.

  1. Exécutez la commande suivante pour obtenir l’URL de requête :

    func azure functionapp list-functions "$FUNCTIONAPP" --show-keys
    
  2. Collez l’URL de la sortie dans un nouvel onglet de navigateur. La sortie affichée est la même que celle que vous avez observée quand vous avez exécuté la fonction au niveau local sans fournir les paramètres de chaîne de requête appropriés. Aucune clé n’est incluse dans la sortie lorsque vous utilisez un niveau d’autorisation anonymous.

  3. Ajoutez ?principal=5000&rate=.035&term=36 à la fin de l’URL et sélectionnez Entrer. Veillez à conserver le paramètre code, le cas échéant. Le résultat retourné est 6300.000000000001, comme prévu.