Troposphere error with event rule with multiple lambdas
jakubincloud opened this issue · comments
Building the project with settings.yml
events:
every_minute:
schedule_expression: rate(1 minute)
description: Bug
state: ENABLED
targets:
one:
lambda: app.helloworld
two:
lambda: app.goodbyeworld
results in troposphere error:
Traceback (most recent call last):
File "/[REDACTED]/.virtualenvs/onebutton-core/bin/gordon", line 11, in <module>
load_entry_point('gordon==0.2.1', 'console_scripts', 'gordon')()
File "/[REDACTED]/.virtualenvs/onebutton-core/lib/python2.7/site-packages/gordon/bin.py", line 106, in main
getattr(obj, options.func)()
File "/[REDACTED]/.virtualenvs/onebutton-core/lib/python2.7/site-packages/gordon/core.py", line 243, in build
self._build_resources_template()
File "/[REDACTED]/.virtualenvs/onebutton-core/lib/python2.7/site-packages/gordon/core.py", line 334, in _build_resources_template
r.register_resources_template(template)
File "/[REDACTED]/.virtualenvs/onebutton-core/lib/python2.7/site-packages/gordon/resources/events.py", line 65, in register_resources_template
rule, 'Arn'
File "/[REDACTED]/.virtualenvs/onebutton-core/lib/python2.7/site-packages/troposphere/__init__.py", line 452, in add_resource
return self._update(self.resources, resource)
File "/[REDACTED]/.virtualenvs/onebutton-core/lib/python2.7/site-packages/troposphere/__init__.py", line 438, in _update
self.handle_duplicate_key(values.title)
File "/[REDACTED]/.virtualenvs/onebutton-core/lib/python2.7/site-packages/troposphere/__init__.py", line 428, in handle_duplicate_key
raise ValueError('duplicate key "%s" detected' % key)
ValueError: duplicate key "EveryMinuteRulePermission" detected
Fix : in gordon/resources/events.py line 55: add lambda_ to utils.valid_cloudformation_name, eg:
utils.valid_cloudformation_name(
self.name,
'rule',
'permission',
lambda_
),