in deployment-lambda/handler.py [0:0]
def deployProduct(config):
cf = boto3.client('cloudformation')
cfnUrl = "https://s3.amazonaws.com/"+os.environ['cfnUrl']
stack_name = "sc-"+(config['Parameters']['ProductName']).replace(" ","-")+"-product-cfn"
if config['Parameters']['TemplateRuleConstraint']:
template_const = json.dumps(config['Parameters']['TemplateRuleConstraint'])
else:
template_const = ""
log.info("Deploying product: "+config['Parameters']['ProductName'])
response = cf.create_stack(
StackName=stack_name,
Parameters=[
{
'ParameterKey': 'PorfolioStack',
'ParameterValue': config['Parameters']['PorfolioStack']
},
{
'ParameterKey': 'ProductName',
'ParameterValue': config['Parameters']['ProductName']
},
{
'ParameterKey': 'ProductDescription',
'ParameterValue': config['Parameters']['ProductDescription']
},
{
'ParameterKey': 'ProductVersion',
'ParameterValue': config['Parameters']['ProductVersion']
},
{
'ParameterKey': 'ProductVersionDescription',
'ParameterValue': config['Parameters']['ProductVersionDescription']
},
{
'ParameterKey': 'ProductTemplateUrl',
'ParameterValue': 'https://s3.amazonaws.com/'+config['Parameters']['ProductTemplateUrl']
},
{
'ParameterKey': 'ProductRoleName',
'ParameterValue': config['Parameters']['ProductRoleName']
},
{
'ParameterKey': 'ProductPolicyName',
'ParameterValue': config['Parameters']['ProductPolicyName']
},
{
'ParameterKey': 'PipelineRoleName',
'ParameterValue': os.environ['PipelineRole']
},
{
'ParameterKey': 'ProductRoleTemplateUrl',
'ParameterValue': 'https://s3.amazonaws.com/'+config['Parameters']['ProductRoleTemplateUrl']
},
{
'ParameterKey': 'TemplateRuleConstraint',
'ParameterValue': template_const
},
{
'ParameterKey': 'DeploymentBucket',
'ParameterValue': config['Parameters']['DeploymentBucket']
},
{
'ParameterKey': 'DeployUpdatePipeline',
'ParameterValue': config['Parameters']['DeployUpdatePipeline']
},
{
'ParameterKey': 'UpdateConfigFileName',
'ParameterValue': config['Parameters']['UpdateConfigFileName']
}
],
Capabilities=[ 'CAPABILITY_IAM' , 'CAPABILITY_NAMED_IAM' ],
EnableTerminationProtection=True,
TemplateURL=cfnUrl
)
log.info(response)