¿Cómo puedo crear un paquete de despliegue de Lambda para C# .NET?

4 minutos de lectura
0

He creado un paquete de despliegue de funciones de AWS Lambda en C#. Sin embargo, cuando intento invocar la función, Lambda devuelve uno de los siguientes errores: «module not found», «module cannot be loaded» o «cannot find class». ¿Cómo soluciono el problema?

Breve descripción

Si la función de Lambda en C# devuelve alguno de los siguientes errores, la estructura de carpetas del ](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html)paquete de despliegue[ de la función no está configurada correctamente:

  • module not found
  • module cannot be loaded
  • cannot find class

Para resolver el problema, debe crear un paquete de despliegue de funciones de Lambda en C# que tenga la estructura de carpetas correcta. Hay dos maneras de crear y desplegar un paquete de despliegue de funciones de Lambda en C# con la estructura de carpetas correcta:

Resolución

Para usar la CLI de .NET Core y la extensión Amazon.Lambda.Tools

1.    Instale las plantillas Lambda .NET predeterminadas y añada la extensión Amazon.Lambda.Tools a la CLI de .NET Core mediante la ejecución del siguiente comando:

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

2.    Cree una nueva función de Lambda con una de las plantillas que instaló, o bien añada la extensión Amazon.Lambda.Tools a un proyecto existente.

Para crear una nueva función de Lambda con una de las plantillas que instaló

Desde la CLI de .NET Core en el directorio raíz del proyecto de la función de Lambda, ejecute el siguiente comando:

Importante: Sustituya {function-name} por el nombre de su función. Sustituya {aws-region} por la región de AWS en la que desee ejecutar la función.

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

Para añadir la extensión Amazon.Lambda.Tools a un proyecto existente

Desde la CLI de .NET Core en el directorio raíz del proyecto de la función de Lambda, ejecute el siguiente comando:

dotnet tool install -g Amazon.Lambda.Tools

Nota: La extensión Amazon.Lambda.Tools le pedirá que proporcione los parámetros necesarios que falten.

3.    Descargue las dependencias de su paquete de despliegue mediante la ejecución del siguiente comando:

Importante: Sustituya {your-function-directory} por el nombre de su directorio de funciones.

cd {your-function-directory}
dotnet restore

Nota: Si aparece el error not compatible, asegúrese de usar una versión de .NET Core compatible con las herramientas de Lambda. Para descargar versiones anteriores de .NET Core, consulte el sitio web .NET Download Archives.

4.    Cree su paquete de despliegue de Lambda mediante la ejecución del siguiente comando:

dotnet lambda deploy-function

**Nota:**O bien, puede crear un paquete de despliegue de Lambda desde cero y desplegarlo por separado. Para obtener instrucciones, consulte Deploying an AWS Lambda project with the .NET Core CLI.

5.    La CLI de .NET Core le pedirá que introduzca un nombre de función y que asigne un rol de AWS Identity and Access Management (IAM) a la función. Introduzca un nombre para la función y asigne un rol de IAM a la función. A continuación, la función se creará.

Para usar AWS Toolkit for Visual Studio

1.    Descargue e instale AWS Toolkit for Visual Studio.

2.    Cree un Proyecto de AWS Lambda (.NET Core). Para obtener instrucciones, consulte Using the AWS Lambda templates in the AWS Toolkit for Visual Studio y AWS Toolkit for Visual Studio en la Guía para desarrolladores de AWS Lambda.

Importante: Asegúrese de que la firma del gestor de funciones tenga el formato siguiente:

ASSEMBLY::TYPE::METHOD

Para confirmar que la función tiene el formato correcto, revise los archivos del directorio src/{function-name} de su función. Para obtener más información, consulte CLI de .NET Core y Controlador de funciones de Lambda en C#.


OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años