Skip to content

Commit

Permalink
Use net6.0 Lambda hosting
Browse files Browse the repository at this point in the history
  • Loading branch information
bartelink committed May 31, 2022
1 parent 1d493d0 commit 4b200a2
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 6 deletions.
31 changes: 27 additions & 4 deletions src/Propulsion.DynamoStore.Lambda/Function.fs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
namespace Propulsion.DynamoStore.Lambda
module Propulsion.DynamoStore.Lambda.Program

open Amazon.Lambda.Core
open Amazon.Lambda.DynamoDBEvents
open Amazon.Lambda.RuntimeSupport
open Equinox.DynamoStore
open Propulsion.DynamoStore
open Serilog
Expand Down Expand Up @@ -67,5 +67,28 @@ type Function() =
.CreateLogger()
let service = DynamoStoreIndexer(log, conn.Context, cache, epochBytesCutoff = epochCutoffMiB * 1024 * 1024) //

member _.FunctionHandler(dynamoEvent : DynamoDBEvent, _context : ILambdaContext) =
DynamoStreamsLambda.ingest log service dynamoEvent |> Async.StartImmediateAsTask
// Warm up (pending https://github.com/aws/aws-lambda-dotnet/pull/1091)
member _.InitAsync() =
service.IngestWithoutConcurrency(AppendsTrancheId.wellKnownId, Array.empty)

member _.Handle(dynamoEvent : DynamoDBEvent) =
DynamoStreamsLambda.ingest log service dynamoEvent

let adaptInit f () =
async {
do! f ()
return true
} |> Async.StartImmediateAsTask
let adaptHandler h x =
h x
|> Async.StartImmediateAsTask
:> System.Threading.Tasks.Task

[<EntryPoint>]
let main _ =
let f = Function()
let serializer = Amazon.Lambda.Serialization.SystemTextJson.DefaultLambdaJsonSerializer()
let t = LambdaBootstrapBuilder.Create<_>(adaptHandler f.Handle, serializer)
.UseBootstrapHandler(adaptInit f.InitAsync)
.Build().RunAsync().GetAwaiter()
let () = t.GetResult() in 0
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,10 @@
<PackageReference Include="MinVer" Version="4.0.0" PrivateAssets="All" />

<PackageReference Include="Amazon.Lambda.Core" Version="2.1.0" />
<PackageReference Include="Amazon.Lambda.DynamoDBEvents" Version="2.1.0" />
<PackageReference Include="Amazon.Lambda.DynamoDBEvents" Version="2.1.1" />
<PackageReference Include="Amazon.Lambda.RuntimeSupport" Version="1.8.1" />
<PackageReference Include="Amazon.Lambda.Serialization.SystemTextJson" Version="2.3.0" />
<PackageReference Include="Serilog.Formatting.Compact" Version="1.1.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="4.0.1" />
<ProjectReference Include="..\Propulsion.DynamoStore\Propulsion.DynamoStore.fsproj" />
</ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,5 @@
"function-memory-size": 128,
"function-timeout": 180,
"function-architecture": "arm64",
"function-handler": "Propulsion.DynamoStore.Lambda::Propulsion.DynamoStore.Lambda.Function::FunctionHandler"
"function-handler": "Propulsion.DynamoStore.Lambda"
}

0 comments on commit 4b200a2

Please sign in to comment.