AWS SAM 使用`--use-container` 标志在本地构建层?

tgk*_*tgk 6 aws-lambda aws-sam-cli

我也在使用 sam cli 构建和部署 AWS Lambdas:

sam build 命令遍历应用程序中的函数,查找包含依赖项的清单文件(例如 requirements.txt),并自动创建部署工件,您可以使用 sam package 和 sam deploy 命令将其部署到 Lambda。

很酷的是,我可以使用选项标志--use-container来构建在类似 AWS Lambda 的 Docker 容器中具有本地编译依赖项的函数。

AWS Lambda 层呢?

我有一个功能:

  CreateImagesLambdaFunction:
    Type: AWS::Serverless::Function
    Properties:
      Runtime: python3.7
      Handler: lambda_function.create
      CodeUri: ./functions/image_handler/
      ...
      Layers: 
        - !Ref LayerPillow
Run Code Online (Sandbox Code Playgroud)

使用具有本机编译依赖项的层(因此必须安装在 linux 上):

  LayerPillow:
    Type: AWS::Serverless::LayerVersion
    Properties:
      ...
      ContentUri: ./functions/layer_pillow/
Run Code Online (Sandbox Code Playgroud)

我可以通过使用amazonlinux:latestdocker 映像安装依赖项并复制到我的存储库来解决这个问题,但是很好奇 SAM 是否支持此功能