Загрузить локальный файл по параметру ZipFile AWS :: Lambda :: Function - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть шаблон CloudFormation с ресурсом AWS :: Lambda :: Function, и я пытаюсь загрузить локальный zip-файл в виде кода, но это не загрузка.Функция Lambda создается без кодовых файлов.

    Resources:
  mastertestingLambdaDataDigestor:
    Properties:
      Code:
        ZipFile: fileb:///home/dariobenitez/Proyectos/dataflow/templates/lambda_template.zip
      FunctionName: mastertesting_Kinesis2DynamoDB_Datapipeline
      Handler: handler.kinesis_to_dynamodb
      Role: SOMEROLE
      Runtime: python3.6
    Type: AWS::Lambda::Function

Параметры пути zip-файла работают, когда я пытаюсь развернуть ту же функцию с помощью CLI.Есть идеи?

Спасибо большое!

1 Ответ

0 голосов
/ 26 февраля 2019

Вы не можете указать путь к файлу там.Вы должны вставить код самой функции.Он ограничен 4096 байтами.Если ваш код больше, вам нужно сначала загрузить его на S3 и использовать S3Bucket и S3Key.

Пример:

mastertestingLambdaDataDigestor:
  Properties:
    Code:
      ZipFile: >
        def handler(event, context):
          pass
    FunctionName: mastertesting_Kinesis2DynamoDB_Datapipeline
    Handler: handler.kinesis_to_dynamodb
    Role: SOMEROLE
    Runtime: python3.6
  Type: AWS::Lambda::Function

Другой вариант использует aws cloudformation package.Он загрузит ZIP-файл для вас и преобразует ваш шаблон в правильный путь.Для этого вам нужно будет указать путь к zip-файлу прямо в Code.Например:

Resources:
  mastertestingLambdaDataDigestor:
    Properties:
      Code: /home/dariobenitez/Proyectos/dataflow/templates/lambda_template.zip
      FunctionName: mastertesting_Kinesis2DynamoDB_Datapipeline
      Handler: handler.kinesis_to_dynamodb
      Role: SOMEROLE
      Runtime: python3.6
    Type: AWS::Lambda::Function

Затем запустите:

aws cloudformation package --template-file my-template.yaml --s3-bucket my-bucket

Он должен вывести что-то вроде:

Resources:
  mastertestingLambdaDataDigestor:
    Properties:
      Code:
        S3Bucket: my-bucket
        S3Key: fjklsdu903490f349034g
      FunctionName: mastertesting_Kinesis2DynamoDB_Datapipeline
      Handler: handler.kinesis_to_dynamodb
      Role: SOMEROLE
      Runtime: python3.6
    Type: AWS::Lambda::Function

Затем вы должны использовать этот шаблон для развертывания своего стека.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...