Aws-lambda-dotnet: Ausnahme beim Versuch, Npgsql zu verwenden, um eine Verbindung zu einer RDS-Instanz herzustellen

Erstellt am 13. Dez. 2016  ·  6Kommentare  ·  Quelle: aws/aws-lambda-dotnet

Hat Npgsql 3.1.9 verwendet

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

Hilfreichster Kommentar

Das Auflösen nativer Abhängigkeiten ist etwas, an dem wir arbeiten, um besser zu werden. Als Workaround können Sie bis dahin in der Datei aws-lambda-tools-defaults.json die Eigenschaft "additional-files" hinzufügen, die die native Auflösung erzwingt. Nachdem ich dies getan hatte, konnte ich eine Verbindung zu einer Postgresql-Datenbank herstellen.

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

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

Alle 6 Kommentare

Das Auflösen nativer Abhängigkeiten ist etwas, an dem wir arbeiten, um besser zu werden. Als Workaround können Sie bis dahin in der Datei aws-lambda-tools-defaults.json die Eigenschaft "additional-files" hinzufügen, die die native Auflösung erzwingt. Nachdem ich dies getan hatte, konnte ich eine Verbindung zu einer Postgresql-Datenbank herstellen.

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

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

Schöne Norm 👍

Ich habe das gleiche Problem, aber mit .Net Core auf einem Mac. Gibt es ein Äquivalent zu "zusätzlichen Dateien", wenn Sie Visual Studio oder aws-lambda-tools nicht verwenden?

Wenn Sie das Amazon.Lambda.Tools NuGet-Paket zum Bereitstellen verwenden, wird beim Ausführen der dotnet Lambda-Bereitstellungsfunktion die Datei aws-lambda-tools- defaults.json gelesen, genau wie Visual Studio, einschließlich des Abschnitts Additional-Files .

Wir wollten sicherstellen, dass alle Bereitstellungsfeatures in Visual Studio über die dotnet-CLI verfügbar sind, um Benutzer auf Macs zu unterstützen.

Diese Antwort hat mir viel zusätzlichen Schmerz erspart ... es ist jedoch erwähnenswert, dass alle Einstellungen in aws-lambda-tools- defaults.json werden ignoriert, daher ist es erforderlich, diese Datei manuell in das Stammverzeichnis des Paketverzeichnisses zu kopieren.

Ich empfehle anstelle von dotnet publish entweder dotnet lambda package . Dadurch wird das gleiche Paket wie in Visual Studio ausgeführt, jedoch über die dotnet-CLI. Sie können die vollständige Liste der Befehle anzeigen, die wir der dotnet-CLI über das NuGet-Paket Amazon.Lambda.Tools hinzugefügt haben, indem Sie dotnet lambda help ausführen

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen