This is a refactor of an old Go Lambda that creates an API that will return a visitor's geolocation based on IP address. It now uses the Aegis deploy tool and framework, which uses native Go Lambdas now instead of needing a shim.
- An AWS account (and configured credentials for CLI)
- Maxmind's GeoLite2 City database.
- Aegis deploy tool and framework
The filename will likely be
Assuming you have AWS credentials configured and you've got the
in your path ready to use. You can run the following to retrieve the geoip data set, build, and deploy:
curl -o GeoLite2-City.tar.gz http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz tar -xvf GeoLite2-City.tar.gz mv GeoLite2-City_20180327/GeoLite2-City.mmdb GeoLite2-City.mmdb go-bindata GeoLite2-City.mmdb aegis deploy
It should build and deploy the Lambda. It may take a little bit due to the size of the database file. It took my 2min 12s to build and deploy (so says my zsh).
You can see the old way we had to use Go in AWS Lambda by looking at the
and here's the original article.