当前位置: 首页>>代码示例>>Golang>>正文


Golang EC2.DescribeNetworkInterfaces方法代码示例

本文整理汇总了Golang中github.com/aws/aws-sdk-go/service/ec2.EC2.DescribeNetworkInterfaces方法的典型用法代码示例。如果您正苦于以下问题:Golang EC2.DescribeNetworkInterfaces方法的具体用法?Golang EC2.DescribeNetworkInterfaces怎么用?Golang EC2.DescribeNetworkInterfaces使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在github.com/aws/aws-sdk-go/service/ec2.EC2的用法示例。


在下文中一共展示了EC2.DescribeNetworkInterfaces方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。

示例1: processNetInterfaces

func processNetInterfaces(svc *ec2.EC2, pageSize int64, apply func([]*string)) {
	networkInterfaces, err := svc.DescribeNetworkInterfaces(&ec2.DescribeNetworkInterfacesInput{})

	kingpin.FatalIfError(err, "Could not retrieve EC2 network interfaces")

	var niIds []*string
	for _, ni := range networkInterfaces.NetworkInterfaces {
		niIds = append(niIds, ni.NetworkInterfaceId)
	}

	apply(niIds)
}
开发者ID:sh0tt,项目名称:awstagger,代码行数:12,代码来源:resources.go

示例2: networkInterfaceAttachmentRefreshFunc

func networkInterfaceAttachmentRefreshFunc(conn *ec2.EC2, id string) resource.StateRefreshFunc {
	return func() (interface{}, string, error) {

		describe_network_interfaces_request := &ec2.DescribeNetworkInterfacesInput{
			NetworkInterfaceIds: []*string{aws.String(id)},
		}
		describeResp, err := conn.DescribeNetworkInterfaces(describe_network_interfaces_request)

		if err != nil {
			log.Printf("[ERROR] Could not find network interface %s. %s", id, err)
			return nil, "", err
		}

		eni := describeResp.NetworkInterfaces[0]
		hasAttachment := strconv.FormatBool(eni.Attachment != nil)
		log.Printf("[DEBUG] ENI %s has attachment state %s", id, hasAttachment)
		return eni, hasAttachment, nil
	}
}
开发者ID:RezaDKhan,项目名称:terraform,代码行数:19,代码来源:resource_aws_network_interface.go

示例3: waitForNoUsedIPS

func waitForNoUsedIPS(svc *ec2.EC2, vpcid string) error {
	filters := make([]*ec2.Filter, 0)
	keyname := "vpc-id"
	filter := ec2.Filter{
		Name: &keyname, Values: []*string{&vpcid}}
	filters = append(filters, &filter)
	dnii := &ec2.DescribeNetworkInterfacesInput{Filters: filters}
	dnio, err := svc.DescribeNetworkInterfaces(dnii)
	if err != nil {
		fmt.Println("Failed to describe network interfaces:", err)
		return err
	}

	//for i := range dnio.NetworkInterfaces {
	//	fmt.Println(dnio.NetworkInterfaces[i])
	//}

	count := 0
	for {
		dnio, err = svc.DescribeNetworkInterfaces(dnii)
		if len(dnio.NetworkInterfaces) == 0 {
			return nil
		}

		//for i := range dnio.NetworkInterfaces {
		//	fmt.Println(dnio.NetworkInterfaces[i])
		//}

		if count > 60 {
			break
		}

		time.Sleep(2 * time.Second)
		count++

	}

	return errors.New("Waited too long for IPs to disappear...")

}
开发者ID:jamesunger,项目名称:saws,代码行数:40,代码来源:saws.go

示例4: getLambdaENIs

func getLambdaENIs(conn *ec2.EC2, d *schema.ResourceData) []ec2.NetworkInterface {
	filter := &ec2.Filter{
		Name:   aws.String("group-id"),
		Values: []*string{aws.String(d.Id())},
	}
	params := &ec2.DescribeNetworkInterfacesInput{
		Filters: []*ec2.Filter{filter},
	}
	networkInterfaceResp, err := conn.DescribeNetworkInterfaces(params)

	lambdaENIs := make([]ec2.NetworkInterface, 0)
	if err != nil {
		log.Printf("[WARN] Unable to fetch ENIs: %s", err)
		return lambdaENIs
	}

	v := networkInterfaceResp.NetworkInterfaces
	for _, eni := range v {
		if strings.Contains(*eni.Description, "AWS Lambda VPC ENI") {
			lambdaENIs = append(lambdaENIs, *eni)
		}
	}
	return lambdaENIs
}
开发者ID:clearcare,项目名称:terraform,代码行数:24,代码来源:resource_aws_security_group.go

示例5: deleteLingeringLambdaENIs

// The AWS Lambda service creates ENIs behind the scenes and keeps these around for a while
// which would prevent SGs attached to such ENIs from being destroyed
func deleteLingeringLambdaENIs(conn *ec2.EC2, d *schema.ResourceData) error {
	// Here we carefully find the offenders
	params := &ec2.DescribeNetworkInterfacesInput{
		Filters: []*ec2.Filter{
			&ec2.Filter{
				Name:   aws.String("group-id"),
				Values: []*string{aws.String(d.Id())},
			},
			&ec2.Filter{
				Name:   aws.String("description"),
				Values: []*string{aws.String("AWS Lambda VPC ENI: *")},
			},
			&ec2.Filter{
				Name:   aws.String("requester-id"),
				Values: []*string{aws.String("*:awslambda_*")},
			},
		},
	}
	networkInterfaceResp, err := conn.DescribeNetworkInterfaces(params)
	if err != nil {
		return err
	}

	// Then we detach and finally delete those
	v := networkInterfaceResp.NetworkInterfaces
	for _, eni := range v {
		if eni.Attachment != nil {
			detachNetworkInterfaceParams := &ec2.DetachNetworkInterfaceInput{
				AttachmentId: eni.Attachment.AttachmentId,
			}
			_, detachNetworkInterfaceErr := conn.DetachNetworkInterface(detachNetworkInterfaceParams)

			if detachNetworkInterfaceErr != nil {
				return detachNetworkInterfaceErr
			}

			log.Printf("[DEBUG] Waiting for ENI (%s) to become detached", *eni.NetworkInterfaceId)
			stateConf := &resource.StateChangeConf{
				Pending: []string{"true"},
				Target:  []string{"false"},
				Refresh: networkInterfaceAttachedRefreshFunc(conn, *eni.NetworkInterfaceId),
				Timeout: 10 * time.Minute,
			}
			if _, err := stateConf.WaitForState(); err != nil {
				return fmt.Errorf(
					"Error waiting for ENI (%s) to become detached: %s", *eni.NetworkInterfaceId, err)
			}
		}

		deleteNetworkInterfaceParams := &ec2.DeleteNetworkInterfaceInput{
			NetworkInterfaceId: eni.NetworkInterfaceId,
		}
		_, deleteNetworkInterfaceErr := conn.DeleteNetworkInterface(deleteNetworkInterfaceParams)

		if deleteNetworkInterfaceErr != nil {
			return deleteNetworkInterfaceErr
		}
	}

	return nil
}
开发者ID:partamonov,项目名称:terraform,代码行数:63,代码来源:resource_aws_security_group.go


注:本文中的github.com/aws/aws-sdk-go/service/ec2.EC2.DescribeNetworkInterfaces方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。