func createFunction()

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
}