В настоящее время у меня есть рабочий процесс в AWS, который выглядит следующим образом:
** Шаг Функция -> Очередь SQS -> Лямбда-функция **
Состояние функции шага После выполнения машина отправляет сообщение в очередь SQS, которое затем запускает функцию Lambda на основе триггера SQS. Вот простая лямбда (записанная в Python):
# Library Imports
import boto3
import json
import os
# Variables
sqs = boto3.resource('sqs')
queue_name = 'ExampleStandardQueue'
queue_url = os.environ['QUEUE_URL']
queue = sqs.get_queue_by_name(QueueName=queue_name)
# Handler
def lambda_handler(event, context):
# Receive messages from queue, one at a time
messages = queue.receive_messages()
for message in messages:
print('Processed message.')
print('Message Attributes: {0}'.format(message.attributes))
print('Message Body: {0}'.format(message.body))
Когда я удаляю триггер SQS и отправляю сообщение в очередь, затем проверяю функцию лямбды, я получаю правильный вывод:
START RequestId: fdf3dffe-0271-4b03-974e-9d8762f2b6b3 Version: $LATEST
Processed message.
Message Attributes: None
Message Body: {"MessageTitle":"Create Group","input":"Started."}
END RequestId: fdf3dffe-0271-4b03-974e-9d8762f2b6b3
REPORT RequestId: fdf3dffe-0271-4b03-974e-9d8762f2b6b3 Duration: 60.38 ms Billed Duration:
100 ms Memory Size: 128 MB Max Memory Used: 77 MB Init Duration: 397.80 ms
Однако, когда у меня есть автоматизированный рабочий процесс, где лямбда автоматически запускается, когда конечный автомат отправляет сообщение в очередь SQS, журналы выглядят так:
START RequestId: 2fac6aa3-01ba-56dc-b077-3c41fdd731ec Version: $LATEST
END RequestId: 2fac6aa3-01ba-56dc-b077-3c41fdd731ec
REPORT RequestId: 2fac6aa3-01ba-56dc-b077-3c41fdd731ec Duration: 294.12 ms Billed Duration: 300 ms Memory Size: 128 MB Max Memory Used: 78 MB
По сути, здесь выходные данные кода не отображаются и не влияют, даже если мониторинг очереди показывает, что сообщение было обработано и лямбда-функция запущена. Что мне здесь не хватает?