diff --git a/Directory.Build.props b/Directory.Build.props index a0f04dfc..0cf16409 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -19,7 +19,7 @@ $(NoWarn);FS2003;NU5105;NU5104 3.0.0 [$(PinnedBaseVersion), 4.0.0) - [$(PinnedBaseVersion), 4.0.0) + diff --git a/src/Propulsion.DynamoStore.Indexer/Handler.fs b/src/Propulsion.DynamoStore.Indexer/Handler.fs index 8b6acb05..75fb3278 100644 --- a/src/Propulsion.DynamoStore.Indexer/Handler.fs +++ b/src/Propulsion.DynamoStore.Indexer/Handler.fs @@ -1,5 +1,6 @@ module Propulsion.DynamoStore.Indexer.Handler +open Amazon.DynamoDBStreams open Amazon.DynamoDBv2 open Propulsion.DynamoStore @@ -8,15 +9,15 @@ let private parse (log: Serilog.ILogger) (dynamoEvent: Amazon.Lambda.DynamoDBEve let mutable indexStream, systemStreams, noEvents = 0, 0, 0 try for record in dynamoEvent.Records do match record.Dynamodb.StreamViewType with - | x when x = StreamViewType.NEW_IMAGE || x = StreamViewType.NEW_AND_OLD_IMAGES -> () + | x when x = string StreamViewType.NEW_IMAGE || x = string StreamViewType.NEW_AND_OLD_IMAGES -> () | x -> invalidOp $"Unexpected StreamViewType {x}" - summary.Append(record.EventName.Value[0]) |> ignore + summary.Append(record.EventName) |> ignore let updated = record.Dynamodb.NewImage match record.EventName with - | ot when ot = OperationType.REMOVE -> () - | ot when ot = OperationType.INSERT || ot = OperationType.MODIFY -> + | ot when ot = string OperationType.REMOVE -> () + | ot when ot = string OperationType.INSERT || ot = string OperationType.MODIFY -> let p = record.Dynamodb.Keys["p"].S let sn, n = IndexStreamId.ofP p, int64 updated["n"].N if p.StartsWith AppendsEpoch.Stream.Category || p.StartsWith AppendsIndex.Stream.Category then indexStream <- indexStream + 1 @@ -40,7 +41,7 @@ let private parse (log: Serilog.ILogger) (dynamoEvent: Amazon.Lambda.DynamoDBEve | [| et |] -> ":" + et | xs -> $":%s{xs[0]}+%d{xs.Length - 1}" summary.Append(p).Append(et).Append(if i = 0 then " " else $"@%d{i} ") |> ignore - | et -> invalidOp $"Unknown OperationType %s{et.Value}" + | et -> invalidOp $"Unknown OperationType %s{et}" let spans = spans.ToArray() log.Information("Index {indexCount} System {systemCount} NoEvents {noEventCount} Spans {spanCount} {summary}", indexStream, systemStreams, noEvents, spans.Length, summary) diff --git a/src/Propulsion.DynamoStore.Indexer/Propulsion.DynamoStore.Indexer.fsproj b/src/Propulsion.DynamoStore.Indexer/Propulsion.DynamoStore.Indexer.fsproj index f508d459..6ef36b50 100644 --- a/src/Propulsion.DynamoStore.Indexer/Propulsion.DynamoStore.Indexer.fsproj +++ b/src/Propulsion.DynamoStore.Indexer/Propulsion.DynamoStore.Indexer.fsproj @@ -27,10 +27,11 @@ - - - - + + + + + diff --git a/src/Propulsion.DynamoStore.Notifier/Handler.fs b/src/Propulsion.DynamoStore.Notifier/Handler.fs index 5fdb1aa2..ef3689f0 100644 --- a/src/Propulsion.DynamoStore.Notifier/Handler.fs +++ b/src/Propulsion.DynamoStore.Notifier/Handler.fs @@ -1,7 +1,6 @@ module Propulsion.DynamoStore.Notifier.Handler -open Amazon.DynamoDBv2 -open Amazon.Lambda.DynamoDBEvents +open Amazon.DynamoDBStreams open Amazon.SimpleNotificationService open Amazon.SimpleNotificationService.Model open Propulsion.DynamoStore @@ -10,7 +9,7 @@ open System.Collections.Generic open System.Net open System.Threading -let private parse (log: Serilog.ILogger) (dynamoEvent: DynamoDBEvent): KeyValuePair[] = +let private parse (log: Serilog.ILogger) (dynamoEvent: Amazon.Lambda.DynamoDBEvents.DynamoDBEvent): KeyValuePair[] = let tails = Dictionary() let updateTails partitionId checkpoint = match tails.TryGetValue partitionId with @@ -20,16 +19,16 @@ let private parse (log: Serilog.ILogger) (dynamoEvent: DynamoDBEvent): KeyValueP let mutable indexStream, otherStream, noEvents = 0, 0, 0 try for record in dynamoEvent.Records do match record.Dynamodb.StreamViewType with - | x when x = StreamViewType.NEW_IMAGE || x = StreamViewType.NEW_AND_OLD_IMAGES -> () + | x when x = string StreamViewType.NEW_IMAGE || x = string StreamViewType.NEW_AND_OLD_IMAGES -> () | x -> invalidOp $"Unexpected StreamViewType {x}" if summary.Length <> 0 then summary.Append ' ' |> ignore - summary.Append(record.EventName.Value[0]) |> ignore + summary.Append(record.EventName) |> ignore let updated = record.Dynamodb.NewImage match record.EventName with - | ot when ot = OperationType.REMOVE -> () - | ot when ot = OperationType.INSERT || ot = OperationType.MODIFY -> + | ot when ot = string OperationType.REMOVE -> () + | ot when ot = string OperationType.INSERT || ot = string OperationType.MODIFY -> let p = record.Dynamodb.Keys["p"].S match FsCodec.StreamName.parse p with | AppendsEpoch.Stream.For (partitionId, epochId) -> @@ -50,7 +49,7 @@ let private parse (log: Serilog.ILogger) (dynamoEvent: DynamoDBEvent): KeyValueP | _ -> if p.StartsWith AppendsIndex.Stream.Category then indexStream <- indexStream + 1 else otherStream <- otherStream + 1 - | et -> invalidOp $"Unknown OperationType %s{et.Value}" + | et -> invalidOp $"Unknown OperationType %s{et}" log.Information("Index {indexCount} Other {otherCount} NoEvents {noEventCount} Tails {tails} {summary:l}", indexStream, otherStream, noEvents, Seq.map ValueTuple.ofKvp tails, summary) Array.ofSeq tails diff --git a/src/Propulsion.DynamoStore.Notifier/Propulsion.DynamoStore.Notifier.fsproj b/src/Propulsion.DynamoStore.Notifier/Propulsion.DynamoStore.Notifier.fsproj index 70135bce..e047f4db 100644 --- a/src/Propulsion.DynamoStore.Notifier/Propulsion.DynamoStore.Notifier.fsproj +++ b/src/Propulsion.DynamoStore.Notifier/Propulsion.DynamoStore.Notifier.fsproj @@ -37,10 +37,11 @@ - - - - + + + + + diff --git a/src/Propulsion.DynamoStore/Propulsion.DynamoStore.fsproj b/src/Propulsion.DynamoStore/Propulsion.DynamoStore.fsproj index 78b4e0ff..80eb6f4e 100644 --- a/src/Propulsion.DynamoStore/Propulsion.DynamoStore.fsproj +++ b/src/Propulsion.DynamoStore/Propulsion.DynamoStore.fsproj @@ -26,7 +26,7 @@ - + diff --git a/tools/Propulsion.Tool/Propulsion.Tool.fsproj b/tools/Propulsion.Tool/Propulsion.Tool.fsproj index 75546a6c..f58ad266 100644 --- a/tools/Propulsion.Tool/Propulsion.Tool.fsproj +++ b/tools/Propulsion.Tool/Propulsion.Tool.fsproj @@ -37,10 +37,10 @@ - + - - + +