Как использовать gdal (geo django) в aws lambda? - PullRequest
0 голосов
/ 29 апреля 2020

Независимо от того, как сильно я выгляжу, я не смог найти хороший способ.
Как установить gdal в aws лямбда?
Если моего вопроса недостаточно, пожалуйста, исправьте меня. извините за мой английский sh.

1 Ответ

1 голос
/ 29 апреля 2020

Хорошим вариантом IMO является использование лямбда-слоя. Вы можете создать его самостоятельно или использовать тот, который был скомпилирован и доступен публично (доступность зависит от вашего региона).

Вот два варианта:

https://github.com/lambgeo/docker-lambda
https://github.com/developmentseed/geolambda

Например, если вы хотите чтобы использовать слой из lambgeo в us-east-1, вы можете просто добавить один из этих arn s к вашей функции:

"layers": [
            {
                "name": "gdal24",
                "arn": "arn:aws:lambda:us-east-1:524387336408:layer:gdal24:1",
                "version": 1
            },
            {
                "name": "gdal30",
                "arn": "arn:aws:lambda:us-east-1:524387336408:layer:gdal30:1",
                "version": 1
            },
            {
                "name": "gdal31",
                "arn": "arn:aws:lambda:us-east-1:524387336408:layer:gdal31:1",
                "version": 1
            }

Полный список областей и arn s см. this ссылка.


Дополнительная информация

После добавления слоя следует добавить переменные окружения в лямбду ниже информации
Вот пример использования docker -lambda.

"GDAL_DATA": "/opt/share/gdal",
"PROJ_LIB": "/opt/share/proj",
"GDAL_LIBRARY_PATH": "/opt/lib/libgdal.so.2.x.x",    // Enter correct version
"GEOS_LIBRARY_PATH": "/opt/lib/libgeos_c.so.1.xx.x"  // Enter correct version

Для django отредактируйте django settings.py

GDAL_LIBRARY_PATH = os.getenv('GDAL_LIBRARY_PATH')
GEOS_LIBRARY_PATH = os.getenv('GEOS_LIBRARY_PATH')
...