Defines a simple AWS lambda service for serving Mapbox vector tiles generated
with tippecanoe from on S3. This server
doesn't support raster tiles, nor very large databases in .mbtiles
format.
Directories of tile files can be arbitrarily large.
The AWS lamda service is defined using AWS SAM, which generates all the AWS elements necessary to run the service, with the exception of the domain name certificate and Route53 hosted zone (optional).
For .mbtiles
databases: On first request for a given mbtiles tileset for a given lambda invocation, the mbtiles database is copied to /tmp/
on the lambda instance. This storage location is limited to 512 MB. A full QLD road network isochrone mbtiles database is ~30 MB in size, so this limitation shouldn't be an issue for QLD specific databases.
Using the aws CLI, Upload a vector tileset as an .mbtiles database or directory structure of tiles to env.BUCKET
, then request tiles and tilejson from the API gateway. Example:
export BUCKET=qfes-mapbox-tiles
export ENDPOINT=tiles.qfesanalytics.com
# upload mbtiles
aws s3 cp ./isochrone.mbtiles s3://$BUCKET/isochrone.mbtiles
# upload (sync) a directory
aws s3 sync ./isochrone s3://$BUCKET/isochrone
# tilejson
curl $ENDPOINT/isochrone.json
# tiles $ENDPOINT/{z}/{x}/{y}.vector.pbf
curl $ENDPOINT/isochrone/1/1/1.vector.pbf