in cmd/resource/lambda.go [97:127]
func createFunction(svc lambdaiface.LambdaAPI, roleArn *string, clusterName *string, vpcConfig ResourcesVpcConfig) error {
zip, _, err := getZip()
if err != nil {
return err
}
funcName := FunctionNamePrefix + *clusterName
input := &lambda.CreateFunctionInput{
Code: &lambda.FunctionCode{
ZipFile: zip,
},
FunctionName: aws.String(funcName),
Handler: aws.String(Handler),
MemorySize: aws.Int64(MemorySize),
Role: roleArn,
Runtime: aws.String(Runtime),
Timeout: aws.Int64(Timeout),
VpcConfig: &lambda.VpcConfig{
SecurityGroupIds: aws.StringSlice(vpcConfig.SecurityGroupIds),
SubnetIds: aws.StringSlice(vpcConfig.SubnetIds),
},
}
_, err = svc.CreateFunction(input)
// Resource already exists error is fine
if awsErr, ok := err.(awserr.Error); ok {
if awsErr.Code() == lambda.ErrCodeResourceConflictException {
log.Printf("Lambda function %v already exists: %v", funcName, awsErr.Message())
return nil
}
}
return err
}