Skip to content

Commit 0407f0e

Browse files
committed
Support use of comma-delimited strings for subnets and security groups
1 parent b0bd254 commit 0407f0e

File tree

1 file changed

+27
-9
lines changed

1 file changed

+27
-9
lines changed

aws_lambda/aws_lambda.py

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -523,6 +523,15 @@ def create_function(cfg, path_to_zip_file, use_s3=False, s3_file=None):
523523
)
524524
print('Creating lambda function with name: {}'.format(func_name))
525525

526+
# Handle string or list for subnet_ids and security_group_ids
527+
subnet_ids = cfg.get('subnet_ids', [])
528+
if type(subnet_ids) is str:
529+
subnet_ids = subnet_ids.split(',')
530+
531+
security_group_ids = cfg.get('security_group_ids', [])
532+
if type(security_group_ids) is str:
533+
security_group_ids = security_group_ids.split(',')
534+
526535
if use_s3:
527536
kwargs = {
528537
'FunctionName': func_name,
@@ -537,8 +546,8 @@ def create_function(cfg, path_to_zip_file, use_s3=False, s3_file=None):
537546
'Timeout': cfg.get('timeout', 15),
538547
'MemorySize': cfg.get('memory_size', 512),
539548
'VpcConfig': {
540-
'SubnetIds': cfg.get('subnet_ids', []),
541-
'SecurityGroupIds': cfg.get('security_group_ids', []),
549+
'SubnetIds': subnet_ids,
550+
'SecurityGroupIds': security_group_ids,
542551
},
543552
'Publish': True,
544553
}
@@ -553,8 +562,8 @@ def create_function(cfg, path_to_zip_file, use_s3=False, s3_file=None):
553562
'Timeout': cfg.get('timeout', 15),
554563
'MemorySize': cfg.get('memory_size', 512),
555564
'VpcConfig': {
556-
'SubnetIds': cfg.get('subnet_ids', []),
557-
'SecurityGroupIds': cfg.get('security_group_ids', []),
565+
'SubnetIds': subnet_ids,
566+
'SecurityGroupIds': security_group_ids,
558567
},
559568
'Publish': True,
560569
}
@@ -640,19 +649,28 @@ def update_function(
640649
'MemorySize': cfg.get('memory_size', 512),
641650
}
642651

652+
# Handle string or list for subnet_ids and security_group_ids
653+
subnet_ids = cfg.get('subnet_ids', [])
654+
if type(subnet_ids) is str:
655+
subnet_ids = subnet_ids.split(',')
656+
657+
security_group_ids = cfg.get('security_group_ids', [])
658+
if type(security_group_ids) is str:
659+
security_group_ids = security_group_ids.split(',')
660+
643661
if preserve_vpc:
644662
kwargs['VpcConfig'] = existing_cfg.get('Configuration', {}).get('VpcConfig')
645663
if kwargs['VpcConfig'] is None:
646664
kwargs['VpcConfig'] = {
647-
'SubnetIds': cfg.get('subnet_ids', []),
648-
'SecurityGroupIds': cfg.get('security_group_ids', []),
665+
'SubnetIds': subnet_ids,
666+
'SecurityGroupIds': security_group_ids,
649667
}
650668
else:
651669
del kwargs['VpcConfig']['VpcId']
652670
else:
653671
kwargs['VpcConfig'] = {
654-
'SubnetIds': cfg.get('subnet_ids', []),
655-
'SecurityGroupIds': cfg.get('security_group_ids', []),
672+
'SubnetIds': subnet_ids,
673+
'SecurityGroupIds': security_group_ids,
656674
}
657675

658676
if 'environment_variables' in cfg:
@@ -757,4 +775,4 @@ def read_cfg(path_to_config_file, profile_name):
757775
cfg['profile'] = profile_name
758776
elif 'AWS_PROFILE' in os.environ:
759777
cfg['profile'] = os.environ['AWS_PROFILE']
760-
return cfg
778+
return cfg

0 commit comments

Comments
 (0)