Как развернуть скрипт в AWS лямбде - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть два сценария, которые мне нужно развернуть в AWS лямбда, я никогда не делал этого раньше, из документации я создал несколько шагов, которые суммируют поток:

  1. Создать лямбда-функцию
  2. Установить boto3
  3. Использовать invoke функцию

Допустим, у меня есть простая функция:

def first_function():
    return print('First function')

Когда Я go до AWS -> Лямбда -> Функции -> Создать функцию Я попадаю в часть конфигурации, где в редакторе я вижу это:

import json

def lambda_handler(event, context):
    # TODO implement
    return {
        'statusCode': 200,
        'body': json.dumps('Hello from Lambda!')
    }

Это то, как я должен редактировать это для развертывания моя функция:

import json

def lambda_handler(event, context):
    # TODO implement
    return {
       def first_function():
           return print('First function')
       first_function()
    }

Ответы [ 2 ]

1 голос
/ 08 апреля 2020

Tha lambda_handler, который появляется, когда вы создаете функцию в консоли, представляет собой просто код котельной пластины.

Вы можете назвать любое имя вашего обработчика или просто поместить код функции под lambda_handler

def lambda_handler(event, context):
    return print('First function')

Имя lambda_handler настраивается, то есть вы можете использовать код

def first_function(event, context):
    return print('First function')

Но вам нужно убедиться, что функция настроена на использование first_function в качестве обработчика.

Я бы рекомендовал прочитать документы , специфицирующие c до python обработчики

1 голос
/ 08 апреля 2020

Какую бы функциональность вы не хотели реализовать в своей лямбде, вы должны написать в lambda_handler. Если вы хотите обратиться к другой более мелкой функции, вы можете определить ее вне функции-обработчика лямбда-выражения и обратиться к ней в обработчике. Таким образом, это может выглядеть следующим образом:

import x

def functiona():
    print(‘something’)

def functionb():
    print(‘somethingelse’)

def lambda_handler(event,context)
    print(‘lambda entry point)
    functiona()
    functionb()

Поскольку модуль сначала будет импортирован, вы все равно можете писать код вне функций, хотя обычно это не очень хорошая практика, поскольку вы не можете получить доступ к контексту и отправленным параметрам в лямбду.

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