Aws-lambda-dotnet: Исключение при попытке использовать Npgsql для подключения к экземпляру RDS

Созданный на 13 дек. 2016  ·  6Комментарии  ·  Источник: aws/aws-lambda-dotnet

Использовал 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

Самый полезный комментарий

Устранение собственных зависимостей - это то, над чем мы работаем, чтобы стать лучше. В качестве обходного пути до этого момента вы можете добавить в файл 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"
  ]
}

Все 6 Комментарий

Устранение собственных зависимостей - это то, над чем мы работаем, чтобы стать лучше. В качестве обходного пути до этого момента вы можете добавить в файл 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

Была ли эта страница полезной?
0 / 5 - 0 рейтинги