Использовал 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
Устранение собственных зависимостей - это то, над чем мы работаем, чтобы стать лучше. В качестве обходного пути до этого момента вы можете добавить в файл aws-lambda-tools-defaults.json свойство «additional-files», которое будет вызывать собственное разрешение. Как только я это сделал, я смог подключиться к базе данных postgresql.
...
"function-handler": "NpgsqlTest::NpgsqlTest.Function::FunctionHandler",
"additional-files": [
"runtimes/linux/lib/netstandard1.3/System.Net.NetworkInformation.dll"
]
}
Хороший Норм 👍
У меня такая же проблема, но с ядром .Net на Mac. Есть ли эквивалент «дополнительным файлам», если не используются Visual Studio или aws-lambda-tools?
Если вы используете пакет NuGet dotnet lambda deploy-function он будет читать файл aws-lambda-tools-defaults.json точно так же, как это делает Visual Studio, включая раздел дополнительных файлов .
Мы хотели убедиться, что все функции развертывания в Visual Studio были доступны через интерфейс командной строки dotnet для поддержки пользователей Mac.
Этот ответ избавил меня от многих дополнительных проблем ... однако стоит отметить, что если вы не используете VS для создания своего пакета / загрузки, а вместо этого используете обычные инструменты coreclr (например, «dotnet publish»), любые настройки в aws-lambda-tools- defaults.json игнорируются, поэтому необходимо вручную скопировать этот файл в корень каталога пакета.
Я рекомендую вместо dotnet publish
использовать либо dotnet lambda package
. Это сделает ту же упаковку, что и в Visual Studio, но из интерфейса командной строки dotnet. Вы можете увидеть полный список команд, которые мы добавили в интерфейс командной строки dotnet через пакет NuGet Amazon.Lambda.Tools
, выполнив dotnet lambda help
Самый полезный комментарий
Устранение собственных зависимостей - это то, над чем мы работаем, чтобы стать лучше. В качестве обходного пути до этого момента вы можете добавить в файл aws-lambda-tools-defaults.json свойство «additional-files», которое будет вызывать собственное разрешение. Как только я это сделал, я смог подключиться к базе данных postgresql.