бессерверное развертывание lambda@edge со спецификацией c зависимости - PullRequest
0 голосов
/ 20 июня 2020

Я хочу развернуть функцию преобразования изображений в WebP из CloudFront, как упоминалось здесь

Но я хочу использовать структуру serverless, и я создал следующие serverless.yml и мои обработчик. js

service: viewer-image-request

plugins:
  - serverless-plugin-include-dependencies

provider:
  name: aws
  runtime: nodejs12.x
  region: us-east-1

resources:
  Resources:
    LambdaAtEdgeRole:
      Type: AWS::IAM::Role
      Properties:
        RoleName: lambda-at-edge
        AssumeRolePolicyDocument:
          Version: '2012-10-17'
          Statement:
            - Effect: Allow
              Principal:
                Service:
                  - lambda.amazonaws.com
                  - edgelambda.amazonaws.com
              Action: sts:AssumeRole
        ManagedPolicyArns:
          - arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole

functions:
  viewer-request:
    handler: handler.handler
    role: LambdaAtEdgeRole

package:
  exclude:
    - node_modules/**
  include:
    - node_modules/path
    - node_modules/useragent

Когда я развертываю это, он загружает lru-cache, os-tempdir, pseudomap, tmp, useragent, yallist в node_modules . Требуется только код useragent и path, но path не загружается.

После развертывания размер функции составляет 91kB

enter image description here

Когда я пытаюсь его развернуть Lambda@Edge, я закрываю это сообщение

enter image description here

Что мне здесь не хватает?

1 Ответ

1 голос
/ 20 июня 2020

Похоже, что значения по умолчанию для serverless.yml :

provider:
  memorySize: 1024
  timeout: 6

Согласно сообщению об ошибке, это значения, которые вам необходимо использовать:

provider:
  memorySize: 128
  timeout: 5
...