Go以AWS提供的SDK aws-sdk-go-v2
來關聯VPC Subnet與Route table。
事前要求
參考「AWS 建立IAM管理使用者及credentials」設定供應用程式存取AWS需要的credentials。
參考「Golang 建立AWS VPC Route table」建立Route table。
參考「Golang 建立AWS VPC Subnet」建立Subnet。
關聯VPC Subnet與Route table
呼叫ec2.Client.AssociateRouteTable
傳入參數ec2.AssociateRouteTableInput
來關聯Subnet與Route table。
ec2.AssociateRouteTableInput.RouteTableId
填入關聯的Route table ID。
ec2.AssociateRouteTableInput.SubnetId
填入關聯的Subnet ID。
main.go
package main
import (
"context"
"fmt"
"github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/service/ec2"
)
func main() {
ctx := context.TODO()
client := NewEC2Client(ctx)
routeTableId := "rtb-0b0e21c8e3b1cda13"
subnetId := "subnet-05c7f25587be4dc58"
input := &ec2.AssociateRouteTableInput{
RouteTableId: &routeTableId,
SubnetId: &subnetId,
}
output, err := client.AssociateRouteTable(ctx, input)
if err != nil {
panic(err)
}
fmt.Println(*output.AssociationId) // rtbassoc-0d2dbf31192e46e91
}
func NewEC2Client(ctx context.Context) *ec2.Client {
cfg, err := config.LoadDefaultConfig(
ctx,
config.WithRegion("ap-northeast-1"),
)
if err != nil {
panic(err)
}
return ec2.NewFromConfig(cfg) // Create an Amazon EC2 service client
}
測試
執行Go應用程式輸出以下結果。
rtbassoc-0d2dbf31192e46e91
在AWS console檢視Route table關聯的Subnet。
沒有留言:
張貼留言