// Helper function to create an EFS Mount target. func CreateMountTarget(e *efs.EFS, i string, s string) (*efs.MountTargetDescription, error) { var security []*string // Determine if we need to assign a security group to this mount point, otherwise defer // to the default group. if *cliSecurity != "" { security = []*string{ cliSecurity, } } params := &efs.CreateMountTargetInput{ FileSystemId: aws.String(i), SubnetId: aws.String(s), SecurityGroups: security, } resp, err := e.CreateMountTarget(params) if err != nil { return nil, err } // Wait for the mount point to become available. for { mnt, err := DescribeMountTarget(e, i) if err != nil { return nil, err } if len(mnt.MountTargets) > 0 { if *mnt.MountTargets[0].LifeCycleState == efsAvail { break } } time.Sleep(10 * time.Second) } return resp, nil }