SQS, лямбда и SES параметр не определены - PullRequest
0 голосов
/ 22 марта 2020

Раньше у меня был этот стек, и он прекрасно работал, однако внезапно я вижу странную ошибку в своем CloudWatch.

Это моя функция (Python) для отправки сообщения в SQS (которая запускает лямбда-функцию для отправки электронного письма с помощью SES):

def post_email(data, creatingUser=None):
    sqs = boto3.client("sqs", region_name=settings.AWS_REGION)
    # Send message to SQS queue
    response = sqs.send_message(
        QueueUrl=settings.QUEUE_EMAIL,
        DelaySeconds=10,
        MessageAttributes={
            "ToAddress": {"DataType": "String", "StringValue": data.get("ToAddress")},
            "Subject": {"DataType": "String", "StringValue": data.get("Subject")},
            "Source": {
                "DataType": "String",
                "StringValue": data.get("Source", "ANS <noreply@ansfire.net"),
            },
        },
        MessageBody=(data.get("BodyText"))
        # When SQS pulls this message off, need to ensure that the email was
        #   actually delivered, if so create a notification
    )

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

2020-02-03T20:41:59.847Z    f483293f-e48b-56e5-bb85-7f8d6341c0bf    INFO    {
  Destination: { ToAddresses: [ undefined ] },
  Message: {
    Body: { Text: [Object] },
    Subject: { Charset: 'UTF-8', Data: undefined }
  },
  Source: undefined
}

Есть идеи о том, что происходит?

1 Ответ

0 голосов
/ 23 марта 2020

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

...