func releaseExternalIP(svc *ec2.EC2, instanceid string) error { keyname := "instance-id" filter := ec2.Filter{ Name: &keyname, Values: []*string{&instanceid}} filters := []*ec2.Filter{ &filter, } dai := &ec2.DescribeAddressesInput{Filters: filters} dao, err := svc.DescribeAddresses(dai) if err != nil { return err } for i := range dao.Addresses { //fmt.Println("Address ",dao.Addresses[i]) dai := &ec2.DisassociateAddressInput{AssociationId: dao.Addresses[i].AssociationId} _, err := svc.DisassociateAddress(dai) //fmt.Println(daio) if err != nil { return err } rai := &ec2.ReleaseAddressInput{AllocationId: dao.Addresses[i].AllocationId} _, err = svc.ReleaseAddress(rai) //fmt.Println(rao) if err != nil { return err } } return nil }
func DisassociateEIP(cli *ec2.EC2, allocId string) error { params := &ec2.DisassociateAddressInput{ AssociationId: aws.String(allocId), } // resp is empty struct _, err := cli.DisassociateAddress(params) return err }