本文整理匯總了Golang中github.com/aws/aws-sdk-go/service/ec2.EC2.DescribeVPCs方法的典型用法代碼示例。如果您正苦於以下問題:Golang EC2.DescribeVPCs方法的具體用法?Golang EC2.DescribeVPCs怎麽用?Golang EC2.DescribeVPCs使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/aws/aws-sdk-go/service/ec2.EC2
的用法示例。
在下文中一共展示了EC2.DescribeVPCs方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: VPCStateRefreshFunc
// VPCStateRefreshFunc returns a resource.StateRefreshFunc that is used to watch
// a VPC.
func VPCStateRefreshFunc(conn *ec2.EC2, id string) resource.StateRefreshFunc {
return func() (interface{}, string, error) {
DescribeVpcOpts := &ec2.DescribeVPCsInput{
VPCIDs: []*string{aws.String(id)},
}
resp, err := conn.DescribeVPCs(DescribeVpcOpts)
if err != nil {
if ec2err, ok := err.(awserr.Error); ok && ec2err.Code() == "InvalidVpcID.NotFound" {
resp = nil
} else {
log.Printf("Error on VPCStateRefresh: %s", err)
return nil, "", err
}
}
if resp == nil {
// Sometimes AWS just has consistency issues and doesn't see
// our instance yet. Return an empty state.
return nil, "", nil
}
vpc := resp.VPCs[0]
return vpc, *vpc.State, nil
}
}
示例2: getAllVPCs
// Get all of the VPCs configured in the environment
func getAllVPCs(ec2client *ec2.EC2) ([]*ec2.VPC, error) {
//Get all of the VPCs
vpcs, err := ec2client.DescribeVPCs(&ec2.DescribeVPCsInput{})
//If we had an error, return it
if err != nil {
return []*ec2.VPC{}, err
}
//Otherwise, return all of our VPCs
return vpcs.VPCs, nil
}
示例3: validateVPC
/*
validateVPC will query ec2 and see if the VPC exists. If it does not exist, then if
createIfNotFound is true, it will attempt to create it
*/
func validateVPC(ec2Client *ec2.EC2, providerConfig *providers.JSONObject, createIfNotFound bool) (success bool, warnings []string, err []error) {
vpcName := providerConfig.Provider.ProviderConfig.Aws.Vpc.Name
log.WithFields(log.Fields{
"VPC Name": vpcName,
}).Info("Validating if VPC exists")
//See if VPC exists
filters := []*ec2.Filter{newEc2Filter("tag:"+nameTag, vpcName)}
params := &ec2.DescribeVPCsInput{Filters: filters}
vpcQueryOutput, callErr := ec2Client.DescribeVPCs(params)
if err != nil {
err = append(err, callErr)
log.WithFields(log.Fields{
"AWS Error": err,
}).Error("Error Querying VPC")
} else {
if len(vpcQueryOutput.VPCs) > 0 {
//Found VPC
log.WithFields(log.Fields{
"VpcID": providerConfig.Provider.ProviderConfig.Aws.Vpc.VpcID,
}).Info("VPC Found")
providerConfig.Provider.ProviderConfig.Aws.Vpc.VpcID = *vpcQueryOutput.VPCs[0].VPCID
success = true
} else {
if createIfNotFound {
//create new VPC
createSuccess, createWarning, createError := addVPC(ec2Client, providerConfig)
if createSuccess {
success = true
for w := range createWarning {
warnings = append(warnings, createWarning[w])
}
} else {
success = false
for e := range createError {
err = append(err, createError[e])
}
}
} else {
//VPC not found and createIfNotFound is false
err = append(err, errors.New("VPC does not exist and create if not found is false"))
success = false
}
}
}
return success, warnings, err
}
示例4: findVPCsByDHCPOptionsID
func findVPCsByDHCPOptionsID(conn *ec2.EC2, id string) ([]*ec2.VPC, error) {
req := &ec2.DescribeVPCsInput{
Filters: []*ec2.Filter{
&ec2.Filter{
Name: aws.String("dhcp-options-id"),
Values: []*string{
aws.String(id),
},
},
},
}
resp, err := conn.DescribeVPCs(req)
if err != nil {
if ec2err, ok := err.(awserr.Error); ok && ec2err.Code() == "InvalidVpcID.NotFound" {
return nil, nil
}
return nil, err
}
return resp.VPCs, nil
}