Go以AWS提供的SDK aws-sdk-go-v2
來分離Virtual private gateway與VPC。
事前要求
參考「AWS 建立IAM管理使用者及credentials」設定供應用程式存取AWS需要的credentials。
參考「Golang AWS VPC 附加Virtual private gateway」建立Virtual private gateway並附加至VPC。
分離Virtual private gateway與VPC
呼叫ec2.Client.DetachVpnGateway
傳入參數ec2.DetachVpnGatewayInput
來分離Virtual private gateway與VPC。
DetachVpnGatewayInput.VpnGatewayId
填入要分離的Virutal private gateway的ID。
DetachVpnGatewayInput.VpcId
填入要分離的VPC ID。
main.go
package main
import (
"context"
"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)
vpnGatewayId := "vgw-0670c529abefaee33"
vpnId := "vpc-0e6e56e06a48ef314"
params := &ec2.DetachVpnGatewayInput{
VpnGatewayId: &vpnGatewayId,
VpcId: &vpnId,
}
_, err := client.DetachVpnGateway(ctx, params)
if err != nil {
panic(err)
}
}
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應用程式後在AWS console檢視Virtual private gateway已無附加的VPC。
Virtual private gateway與VPC分離後,則Direct Connect gateway與Virtual private gateway的關聯也會隨之解除。
沒有留言:
張貼留言