在 AWS LAMBDA 函数中调用 gdal2tiles.py

Calling gdal2tiles.py in AWS LAMBDA function

我正在尝试调用 gdal2tiles.py in AWS Lambda function using GeoLambda 图层。 我不知道如何从 lambda 函数调用此脚本。

到目前为止,我的 lambda 函数如下所示:

    import json
    import os
    from osgeo import gdal
    def lambda_handler(event, context):
       
         os.system("gdal2tiles.py -p -z [0-6] test.jpg")

在日志中我有这个错误:sh: gdal2tiles.py: command not found

知道如何解决这个问题吗?谢谢。

一种方法是 import gdal2tiles 来自您添加到 lambda 函数的 GeoLambda 层的实用程序。

例如:

gdal2tiles.generate_tiles('/path/to/input_file', '/path/to/output_dir/'), nb_processes=2, zoom='0-6')

阅读 gdal2tiles

中的更多信息

编辑: 好的,我让它与这些附加到 lambda 的层一起工作。 前两层直接来自 Github

  • arn:aws:lambda:us-east-1:552188055668:layer:geolambda-python:3
  • arn:aws:lambda:us-east-1:552188055668:layer:geolambda:4

第 3 层是我们的 gdal2tiles,它在本地创建并附加到 lambda 函数

  • arn:aws:lambda:us-east-1:246990787935:layer:gdaltiles:1

您可以从 here

下载 zip

我希望您将以下 Environment vairable 添加到您的 lambda 函数配置中

  • GDAL_DATA=/opt/share/gdal
  • PROJ_LIB=/opt/share/proj(仅 GeoLambda 2.0.0+ 需要)