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
}