in Application/s3Trigger/Function.cs [50:90]
public async Task FunctionHandler(S3Event evnt, ILambdaContext context)
{
var bucket = evnt.Records[0].S3.Bucket.Name;
var key = WebUtility.UrlDecode(evnt.Records[0].S3.Object.Key);
Console.WriteLine(bucket);
Console.WriteLine(key);
var photoData = key.Split("/").Reverse().Take(2).ToArray();
var photoId = photoData[0];
var userId = photoData[1];
Console.WriteLine(photoId);
var input = new
{
Bucket = bucket,
SourceKey = key,
PhotoId = photoId,
UserId = userId,
TablePhoto = Environment.GetEnvironmentVariable(PHOTO_TABLE)
};
var stepResponse = await _stepClient.StartExecutionAsync(new StartExecutionRequest
{
StateMachineArn = StateMachineArn,
Name = $"{MakeSafeName(key, 80)}",
Input = JsonConvert.SerializeObject(input)
}).ConfigureAwait(false);
var photo = new Photo
{
PhotoId = photoId,
SfnExecutionArn = stepResponse.ExecutionArn,
ProcessingStatus = ProcessingStatus.Running,
UpdatedDate = DateTime.UtcNow
};
await _ddbContext.SaveAsync(photo).ConfigureAwait(false);
}