如何在aws lambda中使用gdal(geodjango)?

问题描述 投票:0回答:1

无论我怎么努力寻找,都找不到好办法。如何在aws lambda中安装gdal?如果我的问题不够,请纠正我,对不起我的英语。

lambda postgis gdal serverless geodjango
1个回答
1
投票

我认为一个好的选择是使用lambda层。你可以自己创建一个,或者使用一个已经编译并公开提供的(可用性取决于你的地区)。

这里有两个选择。

https:/github.comlambgeodocker-lambda https:/github.comdevelopmentseedgeolambda。

例如,如果你想在下面的图层中使用lambgeo中的图层 us-east-1,你可以只添加一个这样的 arn的功能。

"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的,见 这个 链接。


其他信息

在添加层后,应该在lambda中添加环境变量,以下是一个使用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')
© www.soinside.com 2019 - 2024. All rights reserved.