Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在aws lambda中使用gdal(geodjango)?_Lambda_Postgis_Gdal_Serverless_Geodjango - Fatal编程技术网

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

如何在aws lambda中使用gdal(geodjango)?,lambda,postgis,gdal,serverless,geodjango,Lambda,Postgis,Gdal,Serverless,Geodjango,不管我怎么努力,我都找不到好办法。 如何在aws lambda中安装gdal? 如果我的问题还不够,请纠正我。对不起,我说的是英语。我认为最好的选择是使用lambda图层。您可以自己创建一个,也可以使用一个已编译并公开提供的(可用性取决于您所在的地区) 这里有两个选项: 例如,如果您想在us-east-1中使用lambgeo中的图层,只需将其中一个arn添加到函数中即可: "layers": [ { "name": "gdal24",

不管我怎么努力,我都找不到好办法。
如何在aws lambda中安装gdal?

如果我的问题还不够,请纠正我。对不起,我说的是英语。

我认为最好的选择是使用lambda图层。您可以自己创建一个,也可以使用一个已编译并公开提供的(可用性取决于您所在的地区)

这里有两个选项:


例如,如果您想在
us-east-1
中使用lambgeo中的图层,只需将其中一个
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
s的完整列表,请参阅链接


补充资料 添加图层后,应将环境变量添加到信息下方的lambda中
下面是一个使用docker lambda的示例

“GDAL_数据”:“/opt/share/GDAL”,
“项目库”:“/opt/share/PROJ”,
“GDAL\u LIBRARY\u PATH”:/opt/lib/libgdal.so.2.x.x“,//输入正确的版本
“GEOS_LIBRARY_PATH”:“/opt/lib/libgeos_c.so.1.xx.x”//输入正确的版本
对于django,编辑django settings.py

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

我刚试过developmentseed/geolambda。这是一个小功能的工作。但无法用于我的django项目。因为它超过了250MB的限制。顺便说一句,我的django项目只有20MB。您是在使用arn还是自己构建层?也许让docker lambda试试?对于我自己创建的层来说效果很好,因为我需要在ap-northeast-2区域运行它。您应该能够像往常一样打包代码和依赖项。。。当您添加层arn时,您将拥有gdal,基本上就像您将自己打包一样。这是一个如何打包的问题。正如你所说,只需将gdal arn添加到图层中即可解决此问题。但由于它是django,我们需要一些额外的设置。我可以修改一下答案吗?