Comment puis-je créer un package de déploiement Lambda pour C# .NET ?

Dernière mise à jour : 15/09/2021

J'ai créé un package de déploiement de fonction AWS Lambda en C#. Cependant, lorsque j'essaie d'appeler la fonction, Lambda renvoie l'une des erreurs suivantes : « module introuvable », « module impossible à charger » ou « impossible de trouver la classe. » Comment résoudre ce problème ?

Brève description

Si votre fonction Lambda C# renvoie l'une des erreurs suivantes, la structure de dossiers du package de déploiement de la fonction n'est pas configurée correctement :

  • module introuvable
  • module impossible à charger
  • impossible de trouver la classe

Pour résoudre le problème, vous devez créer un package de déploiement de fonction Lambda C# dont la structure de dossiers est correcte. Il existe deux façons de créer et de déployer un package de déploiement de fonction Lambda C# avec la structure de dossiers appropriée :

Résolution

Pour utiliser l'interface de ligne de commande .NET Core et l'extension Amazon.Lambda.Tools

1.    Installez les modèles .NET Lambda par défaut et ajoutez l’extension Amazon.Lambda.Tools à l'interface de ligne de commande .NET Core, en exécutant la commande suivante :

dotnet new -i 'Amazon.Lambda.Templates::*'

2.    Créez une nouvelle fonction Lambda à l'aide de l'un des modèles que vous avez installés, ou ajoutez l'extension Amazon.Lambda.Tools à un projet existant.

Pour créer une nouvelle fonction Lambda en utilisant l'un des modèles que vous avez installés

À partir de l'interface de ligne de commande .NET Core dans le répertoire racine du projet de la fonction Lambda, exécutez la commande suivante :

Important : remplacez {function-name} par le nom de votre fonction. Remplacez {aws-region} par la région AWS dans laquelle vous souhaitez utiliser votre fonction.

dotnet new lambda.EmptyFunction --name {function-name} --profile default --region {aws-region}

Pour ajouter l'extension Amazon.Lambda.Tools à un projet existant

À partir de l'interface de ligne de commande .NET Core dans le répertoire racine du projet de la fonction Lambda, exécutez la commande suivante :

dotnet tool install -g Amazon.Lambda.Tools

Remarque : L'extension Amazon.Lambda.Tools vous invitera à fournir tous les paramètres requis manquants.

3.    Téléchargez les dépendances de votre package de déploiement en exécutant la commande suivante :

Important : Remplacez {your-function-directory} par le nom du répertoire de votre fonction.

cd {your-function-directory}
dotnet restore

Remarque : Si vous recevez une erreur de non compatibilité, vérifiez que vous utilisez une version de .NET Core compatible avec les outils Lambda. Pour télécharger des versions antérieures de .NET Core, consultez le site Web .NET Download Archives.

4.    Créez votre package de déploiement Lambda en exécutant la commande suivante :

dotnet lambda deploy-function

Remarque : Vous pouvez également créer un package de déploiement Lambda à partir de zéro et le déployer séparément. Pour obtenir des instructions, consultez Déploiement d'un projet AWS Lambda avec l'interface de ligne de commande .NET Core.

5.    L'interface de ligne de commande .NET Core vous invite à saisir un nom de fonction et à attribuer un rôle AWS Identity and Access Management (IAM) à la fonction. Saisissez un nom pour votre fonction et attribuez-lui un rôle IAM. Votre fonction est alors créée.

Pour utiliser AWS Toolkit for Visual Studio

1.    Téléchargez et installez AWS Toolkit for Visual Studio.

2.    Créez et générez un projet AWS Lambda Project (.NET Core). Pour obtenir des instructions, consultez Utilisation des modèles AWS Lambda dans AWS Toolkit for Visual Studio et AWS Toolkit for Visual Studio dans le Guide du développeur AWS Lambda.

Important : Assurez-vous que la signature du gestionnaire de fonctions est au format suivant :

ASSEMBLY::TYPE::METHOD

Pour confirmer que la fonction est formatée correctement, vérifiez les fichiers dans le répertoire src/{function-name} de votre fonction. Pour plus d'informations, consultez la ligne de commande .NET Core et le Gestionnaire de fonctions AWS Lambda dans C#.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?