title: AWS Lambda "Unable to marshal response" Error
body: <p>I am trying to setup an AWS lambda that will start an SSM session in my EC2 instance and run a command. For simplicity right now I am just trying to run <strong>ls</strong>. Here is my lambda function:</p>
  
  <pre><code>import json
  import boto3
  
  def lambda_handler(commands, context):
      """Runs commands on remote linux instances
      :param client: a boto/boto3 ssm client
      :param commands: string, each one a command to execute on the instance
      :return: the response from the send_command function (check the boto3 docs for ssm client.send_command() )
      """
      client = boto3.client('ssm')
      print ("Hello world")
      resp = client.send_command(
          DocumentName="AWS-RunShellScript",
          # Would normally pass commands param here but hardcoding it instead for testing
          Parameters={"commands":["ls"]},
          InstanceIds=["i-01112223333"],
      )
      return resp
  </code></pre>
  
  <p>However when I run "Test" on this function I get the following log output:</p>
  
  <pre><code>START RequestId: d028de04-4004-4a0p-c8d2-975755c84777 Version: $LATEST
  Hello world
  [ERROR] Runtime.MarshalError: Unable to marshal response: datetime.datetime(2020, 5, 12, 19, 34, 36, 349000, tzinfo=tzlocal()) is not JSON serializable
  END RequestId: d028de04-4asdd4-4a0f-b8d2-9asd847813
  REPORT RequestId: d42asd04-44d4-4a0f-b9d2-275755c6557   Duration: 1447.76 ms    Billed Duration: 1500 ms    Memory Size: 128 MB Max Memory Used: 76 MB  Init Duration: 301.68 ms
  </code></pre>
  
  <p>I am not sure what this <em>Runtime.MarshalError: Unable to marshal response</em> error means or how to fix it.</p>
  
  <p>The payload I'm passing to run the Test lambda shouldn't matter since I'm not using the commands parameter but it is:</p>
  
  <pre><code>{
    "command": "ls"
  }
  </code></pre>
  
  <p>Any help would be appreciated</p>