无论我怎么努力寻找,都找不到好办法。如何在aws lambda中安装gdal?如果我的问题不够,请纠正我,对不起我的英语。
我认为一个好的选择是使用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')