Aws-lambda-dotnet: Excepción al intentar usar Npgsql para conectarse a una instancia de RDS

Creado en 13 dic. 2016  ·  6Comentarios  ·  Fuente: aws/aws-lambda-dotnet

Estaba usando Npgsql 3.1.9

START RequestId: 147aefc2-c10f-11e6-b24b-6daefcf72be1 Version: $LATEST Exception System.TypeInitializationException: The type initializer for 'Npgsql.TypeHandlerRegistry' threw an exception. ---> System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information. at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module) at System.Reflection.Assembly.GetTypes() at Npgsql.TypeHandlerRegistry..cctor() --- End of inner exception stack trace --- at Npgsql.TypeHandlerRegistry.Setup(NpgsqlConnector connector, NpgsqlTimeout timeout) at Npgsql.NpgsqlConnector.Open(NpgsqlTimeout timeout) at Npgsql.ConnectorPool.Allocate(NpgsqlConnection conn, NpgsqlTimeout timeout) at Npgsql.NpgsqlConnection.OpenInternal() at Seaside.Api.HelloWorld.Functions.<GetAsync>d__0.MoveNext() END RequestId: 147aefc2-c10f-11e6-b24b-6daefcf72be1 REPORT RequestId: 147aefc2-c10f-11e6-b24b-6daefcf72be1 Duration: 96.22 ms Billed Duration: 100 ms Memory Size: 256 MB Max Memory Used: 31 MB

guidance

Comentario más útil

La resolución de dependencias nativas es algo en lo que estamos trabajando para mejorar. Como solución temporal hasta entonces, puede agregar en el archivo aws-lambda-tools-defaults.json la propiedad "additional-files" que forzará la resolución nativa. Una vez que hice esto, pude conectarme a una base de datos postgresql.

  ...
  "function-handler": "NpgsqlTest::NpgsqlTest.Function::FunctionHandler",

  "additional-files": [
    "runtimes/linux/lib/netstandard1.3/System.Net.NetworkInformation.dll"
  ]
}

Todos 6 comentarios

La resolución de dependencias nativas es algo en lo que estamos trabajando para mejorar. Como solución temporal hasta entonces, puede agregar en el archivo aws-lambda-tools-defaults.json la propiedad "additional-files" que forzará la resolución nativa. Una vez que hice esto, pude conectarme a una base de datos postgresql.

  ...
  "function-handler": "NpgsqlTest::NpgsqlTest.Function::FunctionHandler",

  "additional-files": [
    "runtimes/linux/lib/netstandard1.3/System.Net.NetworkInformation.dll"
  ]
}

Buena norma 👍

Tengo el mismo problema, pero con .Net core en una Mac. ¿Existe un equivalente a "archivos adicionales" cuando no se usa visual studio o aws-lambda-tools?

Si está utilizando el paquete Amazon.Lambda.Tools NuGet para implementar, cuando ejecute dotnet lambda deploy-function , leerá el archivo aws-lambda-tools-defaults.json tal como lo hace Visual Studio, incluida la sección de archivos adicionales .

Queríamos asegurarnos de que todas las funciones de implementación en Visual Studio estuvieran disponibles a través de la CLI de dotnet para admitir a los usuarios en Mac.

Esta respuesta me ahorró mucho dolor adicional ... sin embargo, vale la pena señalar que si no está usando VS para construir su paquete / carga, sino las herramientas coreclr regulares (es decir, "dotnet publish"), cualquier configuración en aws-lambda-tools- defaults.json se ignoran, por lo que es necesario copiar manualmente este archivo a la raíz del directorio del paquete.

Recomiendo en lugar de usar dotnet publish use dotnet lambda package . Esto hará el mismo empaque que hacemos en Visual Studio pero desde la CLI de dotnet. Puede ver la lista completa de comandos que hemos agregado a la CLI de dotnet a través del paquete NuGet Amazon.Lambda.Tools ejecutando dotnet lambda help

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

orr-levinger picture orr-levinger  ·  21Comentarios

bjorg picture bjorg  ·  35Comentarios

TonyHenrique picture TonyHenrique  ·  24Comentarios

andyfurniss4 picture andyfurniss4  ·  26Comentarios

rianjs picture rianjs  ·  32Comentarios