Daniel Mitchell

Daniel Mitchell

Request does not contain domain name information but is derived from APIGatewayProxyFunction

Ingesting CloudWatch logs cost money ($0.57 per GB log data ingested), so removing log lines that are not useful will save you money. In my C# API project the logs are filled with this Warning: [Warning] Amazon.Lambda.AspNetCoreServer.AbstractAspNetCoreFunction: Request does not contain domain name information but is derived from APIGatewayProxyFunction. This warning comes from the code found in Amazon.Lambda.

Identify and monitor missing AWS S3 files using Athena

Like many websites and mobile apps, www.signbsl.com hosts its static media files using S3, which provides a reliable service without managing servers. The bucket currently holds more than 126,000 images and videos. On a self hosted solution to find missing files I would usually use the Apache Access Logs. But with S3 you need to use Server access logging to

Calling dotnet core Lambda API direct from PHP

Usually a API Gateway is placed in front of a Lambda to allow HTTP requests to be forwarded to a Lambda function. However even when using the HTTP API this still costs $1 per million invocations. To save costs I have setup the PHP website to call the Lambda function direct. Here is how to call the Lambda function and pass the request

SignBSL

A personal project of mine started in 2013 when my wife and I started learning sign language. An important part of learning any new language is building vocabulary. At the time there was just a handful of sites that provided a video dictionary, but the number of signs they contained was small meaning it often required searches across multiple sites, as each site

Compact or Resize your VHD file

If you are using dynamic disk for your virtual machine you will soon find out how annoying it is when it grows in size, but when removing the files the disk does not shrink back down. VirtualBox provides tools for compacting a vhdi file but not for vhd. Hyper-v claims to be able to compact, but this often does not work and is