Segment Geospatial
todo
- export output to mask: OK local, OK aws lambda
- resolve model paths: OK local
- inference:
- from mask to json (rasterio + geopandas, check for re-projection to EPSG_4326)
- check mandatory dependencies
- check for alternative python interpreters
Build instructions
Build the docker image:
# clean any old active containers
docker stop $(docker ps -a -q); docker rm $(docker ps -a -q)
# build the base docker image with the docker aws repository tag
docker build . -f dockerfiles/dockerfile-lambda-gdal-runner --tag 686901913580.dkr.ecr.eu-west-1.amazonaws.com/lambda-gdal-runner
# OPTIONAL: to build the lambda-gdal-runner image on a x86 machine use the build arg `RIE="https://github.com/aws/aws-lambda-runtime-interface-emulator/releases/latest/download/aws-lambda-rie"`:
docker build . -f dockerfiles/dockerfile-lambda-gdal-runner --build-arg RIE="https://github.com/aws/aws-lambda-runtime-interface-emulator/releases/latest/download/aws-lambda-rie" --tag 686901913580.dkr.ecr.eu-west-1.amazonaws.com/lambda-gdal-runner --progress=plain
# build the final docker image
docker build . -f dockerfiles/dockerfile-lambda-samgeo-api --tag 686901913580.dkr.ecr.eu-west-1.amazonaws.com/lambda-samgeo-api
Run the container (keep it on background) and show logs
docker run -d --name lambda-samgeo-api -p 8080:8080 lambda-samgeo-api; docker logs -f lambda-samgeo-api
Test it with curl:
curl -X 'POST' \
'http://localhost:8080/infer_samgeo' \
-H 'accept: application/json' \
-d '{}'
Publish the aws lambda
- Login on aws ECR with the correct aws profile (details on ECR page)
aws --profile alessandrotrinca_hotmail_aws_console_ec2_lambda ecr get-login-password --region eu-west-1 | docker login --username AWS --password-stdin 686901913580.dkr.ecr.eu-west-1.amazonaws.com
- Build and tag the docker images, then push them:
docker push 686901913580.dkr.ecr.eu-west-1.amazonaws.com/lambda-gdal-runner:latest docker push 686901913580.dkr.ecr.eu-west-1.amazonaws.com/lambda-samgeo-api:latest
- It's possible to publish a new aws lambda version from cmd or from lambda page