我正在尝试使用 Go 获取我的 AWS EC2 实例的公共 IP 地址。
func getIpAdrress(svc *session.Session) {
result, err := svc.DescribeAddresses(&ec2.DescribeAddressesInput{
Filters: []*ec2.Filter{
{
Name: aws.String("TeamSpeakServer"),
Values: aws.StringSlice([]string{"vpc"}),
},
},
})
if err != nil {
fmt.Println("Unable to elastic IP address, %v", err)
}
// Printout the IP addresses if there are any.
if len(result.Addresses) == 0 {
fmt.Printf("No elastic IPs for %s region\n", *svc.Config.Region)
} else {
fmt.Println("Elastic IPs")
for _, addr := range result.Addresses {
fmt.Println()
}
}
}
我希望获取 IP 地址和正在运行的实例,或者可能通过机器 ID 来获取 IP,但我整天都在查看 AWS 文档,这就是我目前所拥有的。 这是我得到的错误:
svc.DescribeAddresses 未定义(类型 *session.Session 没有字段或方法 DescribeAddresses)
func getDetaislOFAnInstance(sess *session.Session) {
ec2Svc := ec2.New(sess)
result, err := ec2Svc.DescribeInstances(nil)
if err != nil {
fmt.Println("Error", err)
} else {
fmt.Println("Success", result)
}
}