in cmd/resource/lambda.go [55:88]
func putFunction(sess *session.Session, model *Model, reInvoke bool) (OperationComplete, error) {
svc := lambda.New(sess)
if reInvoke {
return stabilizeFunction(svc, model, aws.String(FunctionNamePrefix+*model.Name))
}
caller, err := getCaller(sts.New(sess))
if err != nil {
return Complete, err
}
accId := accountIdFromArn(caller)
partition := partitionFromArn(caller)
var rolename string
if model.LambdaRoleName == nil {
rolename = "CloudFormation-Kubernetes-VPC"
} else {
rolename = *model.LambdaRoleName
}
roleArn := aws.String("arn:" + *partition + ":iam::" + *accId + ":role/" + rolename)
clusterName := model.Name
vpcConfig := *model.ResourcesVpcConfig
err = updateFunction(svc, roleArn, clusterName, vpcConfig)
if err != nil {
if functionNotExists(err) {
err = createFunction(svc, roleArn, clusterName, vpcConfig)
if err != nil {
return Complete, err
}
} else {
return Complete, err
}
}
return stabilizeFunction(svc, model, aws.String(FunctionNamePrefix+*model.Name))
}