go sdk v2 필요한 항목 정리
깃헙에 계속 업로드 예쩡
GitHub - Eeap/go-sdk-v2-example: This is example repo with aws-sdk-go-v2
package vpc
import (
"context"
"encoding/json"
"fmt"
"github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/service/ec2"
types "github.com/aws/aws-sdk-go-v2/service/ec2/types"
"log"
)
func GetVpc() error {
cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithRegion("us-west-2"))
if err != nil {
log.Fatal(err)
}
svc := ec2.NewFromConfig(cfg)
resp, err := svc.DescribeVpcs(context.TODO(), &ec2.DescribeVpcsInput{})
for _, object := range resp.Vpcs {
obj, _ := json.MarshalIndent(object, "", "\\t")
fmt.Println(string(obj))
}
return nil
}
func GetVpcSubnets() error {
cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithRegion("us-west-2"))
if err != nil {
log.Fatal(err)
}
svc := ec2.NewFromConfig(cfg)
filterType := "availability-zone"
zoneName := "us-west-2a"
resp, err := svc.DescribeSubnets(context.TODO(), &ec2.DescribeSubnetsInput{
Filters: []types.Filter{
{
Name: &filterType,
Values: []string{zoneName},
},
},
MaxResults: nil,
NextToken: nil,
SubnetIds: nil,
})
for _, object := range resp.Subnets {
obj, _ := json.MarshalIndent(object, "", "\\t")
fmt.Println(string(obj))
}
return nil
}
package ec2
import (
"context"
"fmt"
"github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/service/ec2"
"log"
"strings"
)
func GetEC2InstanceTypes() error {
cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithRegion("us-west-2"))
if err != nil {
log.Fatal(err)
}
svc := ec2.NewFromConfig(cfg)
resp, err := svc.DescribeInstanceTypes(context.TODO(), &ec2.DescribeInstanceTypesInput{})
if err != nil {
log.Fatal(err)
}
typeData := []string{}
for _, object := range resp.InstanceTypes {
typeData = append(typeData, string(object.InstanceType))
}
fmt.Printf("[%s]", strings.Join(typeData, ", "))
return nil
}