AWS StepFunction: получение ошибки как «error»: «KeyError» - PullRequest
0 голосов
/ 30 октября 2018

Я новичок в функциях AWS и Step. Я пытаюсь запустить простую программу из функции Step, используя функцию Lambda. Я попробовал приведенный ниже код для запуска функции Step.

код:

import boto3
import json
import os



def lambda_handler(event, context):


    subject = event['Mail']['subject']
    toList = event['Mail']['mailTo'] 
    message = event['MailMessage']['message']
    status = ""


    body = message 

    subject="["+status+"]"+subject


    for to in toList.split(","):
        sendMail(to, ADMIN_EMAIL, subject, body)

    return event


def sendMail(to, reply, subject, body):
    client = boto3.client('ses', region_name=region_name)
    response = client.send_email(
        Source=reply,
        Destination={
            'ToAddresses': [
                to,
            ]
        },
        Message={
            'Subject': {
                'Data': subject,
            },
            'Body': {
                'Text': {
                    'Data': body,
                },
            }
        },
        ReplyToAddresses=[
            reply,
        ],
        ReturnPath=reply
    )
    return response

после запуска функции Step я получаю ошибку ниже.

{
  "error": "KeyError",
  "cause": {
    "errorMessage": "'Mail'",
    "errorType": "KeyError",
    "stackTrace": [
      [
        "/var/task/lambda_function.py",
        11,
        "lambda_handler",
        "subject = event['Mail']['subject']"
      ]
    ]
  }
}

Моя функция шага:

{
  "Comment": "A Sample program to send an email",
  "StartAt": "SampleMail",
  "States": {
    "SampleMail": {
      "Type": "Task",
     "Resource": "arn:aws:lambda:us-west-1:000000123:function:TestEmail", 

      "End": true
    }
  }
}

не могли бы вы сказать мне, что мне здесь не хватает?

Пожалуйста, помогите мне.

Большое спасибо за вашу помощь.

1 Ответ

0 голосов
/ 30 октября 2018

event, переданная вашей функции lambda_handler, не имеет ключа "Mail", поэтому эта строка

subject = event['Mail']['subject']

терпит неудачу. Вы должны убедиться, что параметр event имеет атрибут «Почта», прежде чем получать какие-либо значения с помощью этого ключа.

...