I’m getting the following error when I use the rds module:
failed: [localhost] => {“failed”: true, “parsed”: false}
Traceback (most recent call last):
File “/Users/guy/.ansible/tmp/ansible-tmp-1436911513.8-147068920945542/rds”, line 2822, in 
main()
File “/Users/guy/.ansible/tmp/ansible-tmp-1436911513.8-147068920945542/rds”, line 1012, in main
invocations[module.params.get(‘command’)](module, conn)
File “/Users/guy/.ansible/tmp/ansible-tmp-1436911513.8-147068920945542/rds”, line 645, in create_db_instance
result = conn.get_db_instance(instance_name)
File “/Users/guy/.ansible/tmp/ansible-tmp-1436911513.8-147068920945542/rds”, line 415, in get_db_instance
raise e
boto.exception.JSONResponseError: JSONResponseError: 400 Bad Request
{‘RequestId’: ‘673d1f59-2a74-11e5-af29-2dbda5511805’, ‘Error’: {‘Message’: ‘The parameter Filter: db-instance-id is not a valid identifier. Identifiers must begin with a letter; must contain only ASCII letters, digits, and hyphens; and must not end with a hyphen or contain two consecutive hyphens.’, ‘Code’: ‘InvalidParameterValue’, ‘Type’: ‘Sender’}}
FATAL: all hosts have already failed – aborting
The task config is as follows:
- name: provision rds master
 rds:
 command: create
 instance_name: “{{ wl_name }}_db_master”
 db_engine: MySQL
 db_name: “{{ db_name }}”
 instance_type: db.m3.large
 username: “{{ db_username }}”
 password: “{{ wl_name}}_db_password”
 size: 50
 wait: yes
 wait_timeout: 600
 multi_zone: no
 subnet: “{{ wl_name }}-rds-sg”
 tags:
 Application: “{{ wl_name }}”
 Environment: prod
 region: us-west-1
I guess it’s a problem with the lookup to check if the instance already exists, but I’m not sure what it’s supposed to be using as the lookup parameter. Does anyone know why it’s wrong, and how to fix it?
Thanks,
Guy