##### SUMMARY
I'm attempting to use the lambda_info module to fetch function details, however getting an error AttributeError: 'module' object has no attribute 'all_details'

error is pointing to this line https://github.com/ansible/ansible/blob/stable-2.9/lib/ansible/modules/cloud/amazon/lambda_info.py#L386

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
cloud/amazon/lambda_info

##### ANSIBLE VERSION
```
ansible 2.9.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/home/ubuntu/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/dist-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.15+ (default, Oct  7 2019, 17:39:04) [GCC 7.4.0]
```

##### CONFIGURATION
nothing output
```

```

##### OS / ENVIRONMENT
ubuntu 19.04


##### STEPS TO REPRODUCE
attempting to call `lambda_info` does not return any detail
```yaml
---

- name: "Setup EC2 Keypair"
  hosts: localhost
  gather_facts: false

  vars:
    FunctionName: "LambdaFunctionName"

  tasks:

    - name: "Get Lambda"
      shell: aws lambda get-function --function-name "{{ FunctionName }}" --region "ap-southeast-2"

    - name: "Get Lambda Function Details"
      lambda_info:
        region: "ap-southeast-2"
        name: "{{FunctionName}}"
      register: lambda_function_output

    - name: "Show Lambda Information"
      debug:
        msg: "{{ lambda_function_output }}"
```

##### EXPECTED RESULTS
I expect a object containing the lambda definition, 

##### ACTUAL RESULTS
the shell call to aws works as expected, however the lambda_info module does not

```
ansible-playbook 2.9.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/home/ubuntu/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/dist-packages/ansible
  executable location = /usr/bin/ansible-playbook
  python version = 2.7.15+ (default, Oct  7 2019, 17:39:04) [GCC 7.4.0]
Using /etc/ansible/ansible.cfg as config file
setting up inventory plugins
host_list declined parsing /etc/ansible/hosts as it did not pass its verify_file() method
script declined parsing /etc/ansible/hosts as it did not pass its verify_file() method
auto declined parsing /etc/ansible/hosts as it did not pass its verify_file() method
Parsed /etc/ansible/hosts inventory source with ini plugin
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'

Loading callback plugin default of type stdout, v2.0 from /usr/lib/python2.7/dist-packages/ansible/plugins/callback/default.pyc

PLAYBOOK: main.yaml ***************************************************************************************************************************************************************************************************************
Positional arguments: main.yaml
become_method: sudo
inventory: (u'/etc/ansible/hosts',)
forks: 5
tags: (u'all',)
extra_vars: (u'envtag=dev',)
verbosity: 4
ssh_common_args: -o StrictHostKeyChecking=no
connection: smart
timeout: 10
1 plays in main.yaml

PLAY [Setup EC2 Keypair] **********************************************************************************************************************************************************************************************************
META: ran handlers

TASK [Get Lambda] *****************************************************************************************************************************************************************************************************************
task path: /home/ubuntu/environment/ConnectEventStream/ansible/main.yaml:17
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: ubuntu
<127.0.0.1> EXEC /bin/sh -c 'echo ~ubuntu && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /home/ubuntu/.ansible/tmp/ansible-tmp-1573016645.99-133788815155799 `" && echo ansible-tmp-1573016645.99-133788815155799="` echo /home/ubuntu/.ansible/tmp/ansible-tmp-1573016645.99-133788815155799 `" ) && sleep 0'
Using module file /usr/lib/python2.7/dist-packages/ansible/modules/commands/command.py
<127.0.0.1> PUT /home/ubuntu/.ansible/tmp/ansible-local-27933Azyogt/tmp5CUgJa TO /home/ubuntu/.ansible/tmp/ansible-tmp-1573016645.99-133788815155799/AnsiballZ_command.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /home/ubuntu/.ansible/tmp/ansible-tmp-1573016645.99-133788815155799/ /home/ubuntu/.ansible/tmp/ansible-tmp-1573016645.99-133788815155799/AnsiballZ_command.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python2 /home/ubuntu/.ansible/tmp/ansible-tmp-1573016645.99-133788815155799/AnsiballZ_command.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /home/ubuntu/.ansible/tmp/ansible-tmp-1573016645.99-133788815155799/ > /dev/null 2>&1 && sleep 0'
changed: [localhost] => {
    "changed": true, 
    "cmd": "aws lambda get-function --function-name \"ConnectTraceRecordsStream\" --region \"ap-southeast-2\"", 
    "delta": "0:00:01.698189", 
    "end": "2019-11-06 05:04:07.964856", 
    "invocation": {
        "module_args": {
            "_raw_params": "aws lambda get-function --function-name \"ConnectTraceRecordsStream\" --region \"ap-southeast-2\"", 
... REDACTED...
    "stdout_lines": [
        "{", 
        "    \"Configuration\": {", 
        "        \"FunctionName\": \"ConnectTraceRecordsStream\",", 
  ... REDACTED...
}

TASK [Get Lambda Function Details] ************************************************************************************************************************************************************************************************
task path: /home/ubuntu/environment/ConnectEventStream/ansible/main.yaml:20
<127.0.0.1> ESTABLISH LOCAL CONNECTION FOR USER: ubuntu
<127.0.0.1> EXEC /bin/sh -c 'echo ~ubuntu && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /home/ubuntu/.ansible/tmp/ansible-tmp-1573016648.01-175629843213723 `" && echo ansible-tmp-1573016648.01-175629843213723="` echo /home/ubuntu/.ansible/tmp/ansible-tmp-1573016648.01-175629843213723 `" ) && sleep 0'
Using module file /usr/lib/python2.7/dist-packages/ansible/modules/cloud/amazon/lambda_info.py
<127.0.0.1> PUT /home/ubuntu/.ansible/tmp/ansible-local-27933Azyogt/tmpqUCnmY TO /home/ubuntu/.ansible/tmp/ansible-tmp-1573016648.01-175629843213723/AnsiballZ_lambda_info.py
<127.0.0.1> EXEC /bin/sh -c 'chmod u+x /home/ubuntu/.ansible/tmp/ansible-tmp-1573016648.01-175629843213723/ /home/ubuntu/.ansible/tmp/ansible-tmp-1573016648.01-175629843213723/AnsiballZ_lambda_info.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c '/usr/bin/python2 /home/ubuntu/.ansible/tmp/ansible-tmp-1573016648.01-175629843213723/AnsiballZ_lambda_info.py && sleep 0'
<127.0.0.1> EXEC /bin/sh -c 'rm -f -r /home/ubuntu/.ansible/tmp/ansible-tmp-1573016648.01-175629843213723/ > /dev/null 2>&1 && sleep 0'
The full traceback is:
Traceback (most recent call last):
  File "/home/ubuntu/.ansible/tmp/ansible-tmp-1573016648.01-175629843213723/AnsiballZ_lambda_info.py", line 102, in <module>
    _ansiballz_main()
  File "/home/ubuntu/.ansible/tmp/ansible-tmp-1573016648.01-175629843213723/AnsiballZ_lambda_info.py", line 94, in _ansiballz_main
    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)
  File "/home/ubuntu/.ansible/tmp/ansible-tmp-1573016648.01-175629843213723/AnsiballZ_lambda_info.py", line 40, in invoke_module
    runpy.run_module(mod_name='ansible.modules.cloud.amazon.lambda_info', init_globals=None, run_name='__main__', alter_sys=False)
  File "/usr/lib/python2.7/runpy.py", line 192, in run_module
    fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/tmp/ansible_lambda_info_payload_yCkK_u/ansible_lambda_info_payload.zip/ansible/modules/cloud/amazon/lambda_info.py", line 398, in <module>
  File "/tmp/ansible_lambda_info_payload_yCkK_u/ansible_lambda_info_payload.zip/ansible/modules/cloud/amazon/lambda_info.py", line 386, in main
AttributeError: 'module' object has no attribute 'all_details'

fatal: [localhost]: FAILED! => {
    "changed": false, 
    "module_stderr": "Traceback (most recent call last):\n  File \"/home/ubuntu/.ansible/tmp/ansible-tmp-1573016648.01-175629843213723/AnsiballZ_lambda_info.py\", line 102, in <module>\n    _ansiballz_main()\n  File \"/home/ubuntu/.ansible/tmp/ansible-tmp-1573016648.01-175629843213723/AnsiballZ_lambda_info.py\", line 94, in _ansiballz_main\n    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\n  File \"/home/ubuntu/.ansible/tmp/ansible-tmp-1573016648.01-175629843213723/AnsiballZ_lambda_info.py\", line 40, in invoke_module\n    runpy.run_module(mod_name='ansible.modules.cloud.amazon.lambda_info', init_globals=None, run_name='__main__', alter_sys=False)\n  File \"/usr/lib/python2.7/runpy.py\", line 192, in run_module\n    fname, loader, pkg_name)\n  File \"/usr/lib/python2.7/runpy.py\", line 72, in _run_code\n    exec code in run_globals\n  File \"/tmp/ansible_lambda_info_payload_yCkK_u/ansible_lambda_info_payload.zip/ansible/modules/cloud/amazon/lambda_info.py\", line 398, in <module>\n  File \"/tmp/ansible_lambda_info_payload_yCkK_u/ansible_lambda_info_payload.zip/ansible/modules/cloud/amazon/lambda_info.py\", line 386, in main\nAttributeError: 'module' object has no attribute 'all_details'\n", 
    "module_stdout": "", 
    "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", 
    "rc": 1
}

PLAY RECAP ************************************************************************************************************************************************************************************************************************
localhost                  : ok=1    changed=1    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0   

npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR! ConnectEventStream@0.8.0 deploy: `cd ansible && ansible-playbook -e "envtag=dev" main.yaml -vvvv --ssh-common-args='-o StrictHostKeyChecking=no'`
npm ERR! Exit status 2
npm ERR! 
npm ERR! Failed at the ConnectEventStream@0.8.0 deploy script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/ubuntu/.npm/_logs/2019-11-06T05_04_08_749Z-debug.log
```

lambda_info.update(function={})
            else:
                module.fail_json_aws(e, msg="Trying to get {0} configuration".format(function_name))
    else:
        params = dict()
        if module.params.get('max_items'):
            params['MaxItems'] = module.params.get('max_items')
        if module.params.get('next_marker'):
            params['Marker'] = module.params.get('next_marker')
        try:
            lambda_info.update(function_list=client.list_functions(**params)['Functions'])
        except ClientError as e:
            if e.response['Error']['Code'] == 'ResourceNotFoundException':
                lambda_info.update(function_list=[])
            else:
                module.fail_json_aws(e, msg="Trying to get function list")
        functions = dict()
        for func in lambda_info.pop('function_list', []):
            functions[func['FunctionName']] = camel_dict_to_snake_dict(func)
        return functions
    return {function_name: camel_dict_to_snake_dict(lambda_info)}
def mapping_details(client, module):
    """
    Returns all lambda event source mappings.
    :param client: AWS API client reference (boto3)
    :param module: Ansible module reference
    :return dict:
    """
    lambda_info = dict()
    params = dict()