Go以AWS提供的SDK aws-sdk-go-v2來建立Direct Connect Connection。
範例環境:
- Go 1.19
事前要求
參考「AWS 建立IAM管理使用者及credentials」設定供應用程式存取AWS需要的credentials。
參考「Golang 建立AWS Direct Connect API client」建立Direct Connect API client。
建立Diret Connect Connection
呼叫directconnect.Client.CreateConnection傳入參數directconnect.CreateConnectionInput來建立Direct Connect Connection。
directconnect.CreateConnectionInput的屬性Location、Bandwidth、ProviderName等可參考在AWS Console建立Direct Connect Connection的選單值。
main.go
package main
import (
"context"
"fmt"
"github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/service/directconnect"
)
func main() {
ctx := context.TODO()
client := NewDirectConnectClient(ctx)
connectionName := "demo-connection-001"
location := "CHT51" // Chunghwa Telecom, Taipei, TWN
bandWidth := "1Gbps"
providerName := "Chunghwa Telecom"
params := &directconnect.CreateConnectionInput{
ConnectionName: &connectionName,
Location: &location,
Bandwidth: &bandWidth,
ProviderName: &providerName,
}
output, err := client.CreateConnection(ctx, params)
if err != nil {
panic(err)
}
fmt.Println(*output.ConnectionId) // dxcon-fg5kq63s
}
func NewDirectConnectClient(ctx context.Context) *directconnect.Client {
cfg, err := config.LoadDefaultConfig(
ctx,
config.WithRegion("ap-northeast-1"),
)
if err != nil {
panic(err)
}
return directconnect.NewFromConfig(cfg) // Create an Amazon Direct Connect service client
}
測試
執行Go應用程式輸出以下結果。
dxcon-fg5kq63s
在AWS Console檢視剛由Go程式建立的Direct Connect Connection。
沒有留言:
張貼留言