Aws-lambda-dotnet: Npgsql์„ ์‚ฌ์šฉํ•˜์—ฌ RDS ์ธ์Šคํ„ด์Šค์— ์—ฐ๊ฒฐํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์˜ˆ์™ธ

์— ๋งŒ๋“  2016๋…„ 12์›” 13์ผ  ยท  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"
  ]
}

๋‹ˆ์Šค ์› ๋†ˆ ๐Ÿ‘

๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์ง€๋งŒ Mac์˜ .Net ์ฝ”์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Visual Studio ๋˜๋Š” aws-lambda-tools๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๋•Œ "์ถ”๊ฐ€ ํŒŒ์ผ"์— ํ•ด๋‹นํ•˜๋Š” ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

Amazon.Lambda.Tools NuGet ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐํฌํ•˜๋Š” ๊ฒฝ์šฐ lambda deploy-function ์„ ์‹คํ–‰ํ•  ๋•Œ Visual Studio์—์„œ ์ถ”๊ฐ€ ํŒŒ์ผ ์„น์…˜์„ ํฌํ•จํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ aws-lambda-tools-defaults.json ํŒŒ์ผ์„ ์ฝ์Šต๋‹ˆ๋‹ค.

Mac ์‚ฌ์šฉ์ž๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด Visual Studio์˜ ๋ชจ๋“  ๋ฐฐํฌ ๊ธฐ๋Šฅ์„ dotnet CLI๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋‹ต๋ณ€์€ ์ €์—๊ฒŒ ํ›จ์”ฌ ๋” ๋งŽ์€ ๊ณ ํ†ต์„ ๋œ์–ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค ... ๊ทธ๋Ÿฌ๋‚˜ VS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒจํ‚ค์ง€/์—…๋กœ๋“œ๋ฅผ ๋นŒ๋“œํ•˜์ง€ ์•Š๊ณ  ๋Œ€์‹  ์ผ๋ฐ˜ coreclr ๋„๊ตฌ(์˜ˆ: "dotnet publish"), aws-lambda-tools- defaults.json์€ ๋ฌด์‹œ๋˜๋ฏ€๋กœ ์ด ํŒŒ์ผ์„ ํŒจํ‚ค์ง€ ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋ฃจํŠธ์— ์ˆ˜๋™์œผ๋กœ ๋ณต์‚ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

dotnet publish ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹  dotnet lambda package ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด Visual Studio์—์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ํŒจํ‚ค์ง•์„ ์ˆ˜ํ–‰ํ•˜์ง€๋งŒ dotnet CLI์—์„œ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ํŒจํ‚ค์ง€ ์šฐ๋ฆฌ๋Š” NuGet์„ ํ†ตํ•ด DOTNET์˜ CLI์— ์ถ”๊ฐ€ ํ•œ ๋ช…๋ น์˜ ์ „์ฒด ๋ชฉ๋ก์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค Amazon.Lambda.Tools ์‹คํ–‰ํ•˜์—ฌ dotnet lambda help

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰