Я сделал 2 лямбда-функции (LambdaFunction_1 и LambdaFunction_2).Я развернул LambdaFunction_1 на своем ядре AWS-Greengrass, которое является RaspberryPi 3, чтобы быть локальной лямбда-функцией.Я хочу вызвать LambdaFunction_1 из LambdaFunction_2.Локальная лямбда-функция не может быть вызвана по странной причине, которую я не могу понять.
Чтобы развернуть локальную лямбда-функцию (LambdaFunction_1), я должен загрузить zip-файл, содержащий файл Python кода иgreengrasssdk.Импорт этого greengrasssdk в коде делает невозможным его запуск!
Это код для LAmbdaFunction_2, который находится в облаке:
import json
import boto3
invokeLam = boto3.client('lambda')
def lambda_handler(event, context):
payload = {'test-key': 'Hi, you have been invoked!'}
response_F1 = invokeLam.invoke(
FunctionName = 'LambdaFunction_1',
InvocationType = 'RequestResponse',
LogType='None',
Payload = json.dumps(payload)
)
data_F1 = response_F1['Payload'].read()
print (data_F1)
return
Это код LambdaFunction_1, который развернут на greengrasscore:
import json
import greengrasssdk
def function_handler(event, context):
print (event)
return 'Hello From Function 1'
Вывод должен быть "Hello From Function 1" в файле журнала функции 2. Но ответом является {"errorMessage": "Невозможно импортировать модуль 'LambdaFunction_1'"}
НО: когда я удаляю (импортирую greengrasssdk) строку из кода функции один, она работает отлично.Эта проблема логична?