mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Adding environment variable support for lambda.py in response to feat… (#20705)
* Adding environment variable support for lambda.py in response to feature idea #20479. Plus a 1-character bug fix. * fix yaml syntax * Fixing option name, adding alias, and fixing a line to allow the user to delete environment variables by setting an empty dict.
This commit is contained in:
parent
858e1ef422
commit
22701806c3
1 changed files with 19 additions and 1 deletions
|
@ -96,6 +96,12 @@ options:
|
|||
- List of VPC security group IDs to associate with the Lambda function. Required when vpc_subnet_ids is used.
|
||||
required: false
|
||||
default: None
|
||||
environment_variables:
|
||||
description:
|
||||
- A dictionary of environment variables the Lambda function is given.
|
||||
required: false
|
||||
default: None
|
||||
aliases: [ 'environment' ]
|
||||
author:
|
||||
- 'Steyn Huizinga (@steynovich)'
|
||||
extends_documentation_fragment:
|
||||
|
@ -120,11 +126,18 @@ tasks:
|
|||
vpc_security_group_ids:
|
||||
- sg-123abcde
|
||||
- sg-edcba321
|
||||
environment_variables: '{{ item.env_vars }}'
|
||||
with_items:
|
||||
- name: HelloWorld
|
||||
zip_file: hello-code.zip
|
||||
env_vars:
|
||||
key1: "first"
|
||||
key2: "second"
|
||||
- name: ByeBye
|
||||
zip_file: bye-code.zip
|
||||
env_vars:
|
||||
key1: "1"
|
||||
key2: "2"
|
||||
|
||||
# Basic Lambda function deletion
|
||||
tasks:
|
||||
|
@ -221,6 +234,7 @@ def main():
|
|||
memory_size=dict(type='int', default=128),
|
||||
vpc_subnet_ids=dict(type='list', default=None),
|
||||
vpc_security_group_ids=dict(type='list', default=None),
|
||||
environment_variables=dict(type='dict', default=None),
|
||||
)
|
||||
)
|
||||
|
||||
|
@ -250,6 +264,7 @@ def main():
|
|||
memory_size = module.params.get('memory_size')
|
||||
vpc_subnet_ids = module.params.get('vpc_subnet_ids')
|
||||
vpc_security_group_ids = module.params.get('vpc_security_group_ids')
|
||||
environment_variables = module.params.get('environment_variables')
|
||||
|
||||
check_mode = module.check_mode
|
||||
changed = False
|
||||
|
@ -306,6 +321,8 @@ def main():
|
|||
func_kwargs.update({'Timeout': timeout})
|
||||
if memory_size and current_config['MemorySize'] != memory_size:
|
||||
func_kwargs.update({'MemorySize': memory_size})
|
||||
if (environment_variables is not None) and (current_config['Environment']['Variables'] != environment_variables):
|
||||
func_kwargs.update({'Environment':{'Variables': environment_variables}})
|
||||
|
||||
# Check for unsupported mutation
|
||||
if current_config['Runtime'] != runtime:
|
||||
|
@ -338,7 +355,7 @@ def main():
|
|||
func_kwargs.update({'VpcConfig':{'SubnetIds': [], 'SecurityGroupIds': []}})
|
||||
|
||||
# Upload new configuration if configuration has changed
|
||||
if len(func_kwargs) > 2:
|
||||
if len(func_kwargs) > 1:
|
||||
try:
|
||||
if not check_mode:
|
||||
response = client.update_function_configuration(**func_kwargs)
|
||||
|
@ -421,6 +438,7 @@ def main():
|
|||
'Code': code,
|
||||
'Timeout': timeout,
|
||||
'MemorySize': memory_size,
|
||||
'Environment':{'Variables': environment_variables}
|
||||
}
|
||||
|
||||
# If VPC configuration is given
|
||||
|
|
Loading…
Reference in a new issue