samgis / README.md
aletrn's picture
[debug] first test on lambda for fastsam prediction
fa76f5f
|
raw
history blame
2.33 kB

Segment Geospatial

todo

  1. export output to mask: OK local, OK aws lambda
  2. resolve model paths: OK local
  3. inference:
  4. from mask to json (rasterio + geopandas, check for re-projection to EPSG_4326)
  5. check mandatory dependencies
  6. 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

  1. 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
    
  2. 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
    
  3. It's possible to publish a new aws lambda version from cmd or from lambda page