func updateFunction()

in cmd/resource/lambda.go [139:173]


func updateFunction(svc lambdaiface.LambdaAPI, roleArn *string, clusterName *string, vpcConfig ResourcesVpcConfig) error {
	zip, hash, err := getZip()
	if err != nil {
		return err
	}
	functionOutput, err := svc.GetFunction(&lambda.GetFunctionInput{FunctionName: aws.String(FunctionNamePrefix + *clusterName)})
	if err != nil {
		return err
	}
	if hash != *functionOutput.Configuration.CodeSha256 {
		codeInput := &lambda.UpdateFunctionCodeInput{
			FunctionName: aws.String(FunctionNamePrefix + *clusterName),
			ZipFile:      zip,
		}
		_, err = svc.UpdateFunctionCode(codeInput)
		if err != nil {
			return err
		}
	}
	configInput := &lambda.UpdateFunctionConfigurationInput{
		FunctionName: aws.String(FunctionNamePrefix + *clusterName),
		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.UpdateFunctionConfiguration(configInput)
	return err
}